En python, je pourrais faire quelque chose comme myMap = {key: [value1, value2]}
puis accéder au value2
en utilisant myMap[key][1]
Puis-je faire quelque chose comme ça en javascript?
Eh bien, vous pouvez faire ceci:
var myMap = { key: [ value1, value2 ] };
var array = myMap.key; // or myMap["key"]
JavaScript n'a pas de type "tableau associatif", qui associe un comportement de "carte" à un comportement de tableau, comme le fait de garder trace du nombre de propriétés. Ainsi, la chose la plus commune à faire est d'utiliser un objet simple. Dans le langage JavaScript moderne actuel (2017), il existe une fonctionnalité explicite Map
qui permet aux clés d'être de n'importe quel type, pas seulement des chaînes comme lors de l'utilisation d'objets simples.
JavaScript est un peu ridicule à propos de la notation littérale d'objet, en ce sens qu'il ne vous permet pas d'utiliser des mots réservés pour les clés à moins que vous ne les citiez:
var myMap = { 'function': 'hello world' };
La syntaxe quote permet d'utiliser n'importe quelle chaîne comme nom de propriété. Pour accéder à de telles propriétés, vous utiliseriez l'opérateur [ ]
console.log(myMap["function"]); // "hello world"
Il est en effet.
var myMap = {london: ['clapham', 'chelsea'], bristol:['clifton', 'redland']}
alert(myMap.london[0]);
alert(myMap['bristol'][1]);
Voir cet exemple sur jsFiddle
Oui, et la syntaxe est presque la même aussi.
var myMap = {key: ["value1", "value2"]};
alert(myMap["key"][1]); // pops up an alert with the Word "value2"
Vous pouvez également utiliser la notation suivante:
myMap.key[1]
Réponse courte ... oui ...
var m = { Foo : ["Bar", "Baz"] };
alert(m.Foo[0]);
alert(m["Foo"][1]);
Vous pouvez utiliser Map:
var myMap = new Map();
myMap.set('key','Value');
var res = myMap.get('key');
console.log(var); // Result is: 'Value'