javascript关联数组

MxL*_*evs 32 javascript associative-array

在python中我可以做类似的事情myMap = {key: [value1, value2]},然后访问value2使用myMap[key][1]

我可以在javascript中做这样的事情吗?

Poi*_*nty 42

好吧,你可以这样做:

var myMap = { key: [ value1, value2 ] };
var array = myMap.key; // or myMap["key"]
Run Code Online (Sandbox Code Playgroud)

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

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

var myMap = { 'function': 'hello world' };
Run Code Online (Sandbox Code Playgroud)

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

console.log(myMap["function"]); // "hello world"
Run Code Online (Sandbox Code Playgroud)


Swa*_*aff 9

确实是.

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

alert(myMap.london[0]);
alert(myMap['bristol'][1]);
Run Code Online (Sandbox Code Playgroud)

jsFiddle上查看此示例


Gre*_*reg 8

是的,语法几乎也一样.

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

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

myMap.key[1]
Run Code Online (Sandbox Code Playgroud)


Jim*_*dra 5

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

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

alert(m.Foo[0]);
alert(m["Foo"][1]);
Run Code Online (Sandbox Code Playgroud)