javascript关联数组

时间:2011-03-25 14:57:12

标签: javascript associative-array

在python中,我可以执行myMap = {key: [value1, value2]}之类的操作,然后使用value2

访问myMap[key][1]

我可以在javascript中执行类似的操作吗?

5 个答案:

答案 0 :(得分:42)

嗯,你可以这样做:

var myMap = { key: [ value1, value2 ] };
var array = myMap.key; // or myMap["key"]

JavaScript没有“关联数组”类型,它将“map”行为与数组行为结合起来,例如跟踪属性的数量。因此,常见的事情是使用普通对象。在现代JavaScript(2017)中,有一个明确的Map工具允许键是任何类型的,而不仅仅是使用简单对象时的字符串。

JavaScript对于对象文字表示法有点愚蠢,因为它不会让你使用保留字作为键,除非你引用它们:

var myMap = { 'function': 'hello world' };

引用语法允许将任何字符串用作属性名称。要访问此类属性,您需要使用[ ]运算符

console.log(myMap["function"]); // "hello world"

答案 1 :(得分:9)

确实如此。

var myMap = {london: ['clapham', 'chelsea'], bristol:['clifton', 'redland']}

alert(myMap.london[0]);
alert(myMap['bristol'][1]);

请参阅jsFiddle

上的此示例

答案 2 :(得分:8)

是的,语法也几乎相同。

var myMap = {key: ["value1", "value2"]};
alert(myMap["key"][1]); // pops up an alert with the word "value2"

您还可以使用以下表示法:

myMap.key[1]

答案 3 :(得分:5)

简短回答......是的......

var m = { Foo : ["Bar", "Baz"] };

alert(m.Foo[0]);
alert(m["Foo"][1]);

答案 4 :(得分:0)

您可以使用地图:

var myMap = new Map(); 
myMap.set('key','Value'); 
var res = myMap.get('key'); 

console.log(var); // Result is: 'Value'