在python中,我可以执行myMap = {key: [value1, value2]}
之类的操作,然后使用value2
myMap[key][1]
我可以在javascript中执行类似的操作吗?
答案 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'