C # Dictionnaire équivalent en JavaScript

Existe-t-il un type de dictionnaire c # en JavaScript? J'ai une application dans angularjs qui demande des données à partir d'un MVC Web Api et, une fois qu'il l'obtient, il y apporte des modifications. Donc, les données sont un ensemble d'objets, qui est stocké dans MVC Web Api en tant que dictionnaire d'objets, mais je le convertiens en liste avant de passer le réseau.

Si je convertis le dictionnaire directement à JSon, j'ai quelque chose comme:

array = [ {Id:"1", {Id:"1", Name:"Kevin Shields"}}, {Id:"2", {Id:"2", Name:"Natasha Romanoff"}} ]; 

Bien, les objets sont un peu plus complexes, mais vous avez maintenant une idée. Le problème est que ce format est encore plus difficile à utiliser avec (j'ai des clés ou des identifiants alphabétiques). Donc, existe-t-il un équivalent d'un dictionnaire? Il est assez simple de faire comme:

 Object o = dictionary["1"]; 

Voilà, merci d'avance.

Vous avez vraiment deux options, même si les deux font essentiellement la même chose, il vaut la peine de lire un peu plus ici , qui parle de tableaux associatifs (dictionnaires), si vous souhaitez adapter la solution:

 var dictionary = new Array(); dictionary['key'] = 'value' 

Alternativement:

 var dict = []; dict.push({ key: 'key', value: 'value' }); 

Oui, c'est un objet . L'objet a des clés et des valeurs comme C # dictonaries. Les clés sont toujours des cordes.

Dans votre cas, l'objet ressemblerait à ceci:

 { "1": { "Id": 1, "Name":" Kevin Shields" }, "2": { "Id": 2, "Name": "Natasha Romanoff" } } 

Le sérialiseur ASP.net par défaut produit JSON laid. Une meilleure alternative serait Json.NET .

Mon exemple:

 var dict = new Array(); // add a key named id with value 111 dict.id = 111; //change value of id dict.id = "blablabla"; //another way // add a key named name with value "myName" dict["name"] = "myName"; //and delete delete dict.id; delete dict["name"] //another way dict = { id: 111, "name": "myName" }; //And also another way create associate array var myMap = { key: [ value1, value2 ] };