我正在尝试创建一个存在键值对的对象,该值为数组。
即:
foo = {'key1':['val1','val2'], 'key2':['v3','v4']};
这在纯JS中是否可行?
e.g。
var foo = {};
foo['key1'] = ['keyOneVal1'];
foo['key1'] = ['keyOneVal2'];
但正如您可能已经猜到的那样,这只会覆盖keyOneVal1。
我也试过
var foo = {};
foo['key1'].push('k1v1');
foo['key1'].push('k1v2');
但无法让它在jsfiddle中运行。
编辑:
好的,听到你们大声而清晰。 此对象不会使用启动键进行初始化,而是根据时间动态插入。所以最终对象看起来更像是
foo = {'time1':['a','b'], 'time2':['c','d','e','f'], 'time3':['y','y']};
答案 0 :(得分: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 />');
}
答案 1 :(得分:2)
尝试这样的事情,确保声明key1:
var foo = {"key1" : []};
foo['key1'].push('k1v1');
foo['key1'].push('k1v2');
答案 2 :(得分:1)
可以这样做
var foo = {"key":[]}
foo["key"].push("val1")
foo["key"].push("val2")