Javascript - 具有键值对的对象,其中value是数组

use*_*041 0 javascript arrays object data-structures

我正在尝试创建一个对象,其中有一个键值对,值是一个数组.

即:

foo = {'key1':['val1','val2'], 'key2':['v3','v4']};
Run Code Online (Sandbox Code Playgroud)

这在纯JS中是否可行?

例如

var foo = {};
foo['key1'] = ['keyOneVal1'];
foo['key1'] = ['keyOneVal2'];
Run Code Online (Sandbox Code Playgroud)

但正如你可能已经猜到的那样,这只会覆盖keyOneVal1.

我也试过了

var foo = {};
foo['key1'].push('k1v1');
foo['key1'].push('k1v2');
Run Code Online (Sandbox Code Playgroud)

但无法让它在jsfiddle中运作.

编辑:

好的,你们大声清楚地听到了.此对象不会使用启动键进行初始化,而是根据时间动态插入.所以最终对象看起来更像

foo = {'time1':['a','b'], 'time2':['c','d','e','f'], 'time3':['y','y']};
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 6

这很有可能.你的第二个例子是正确的方法.你刚刚错过了初始化程序:

var foo = {};
foo['key1'] = [];
foo['key1'].push('k1v1');
foo['key1'].push('k1v2');

for(var i = 0; i < foo['key1'].length; i++) {
  document.write(foo['key1'][i] + '<br />');
}
Run Code Online (Sandbox Code Playgroud)