我正在使用这段代码(如下所示)尝试在for循环中填充名为Parameters
的对象文字。我需要将key:value
对与迭代i
变量的循环一起分配,如下所示:{key_1:chunks[1],key_2:chunks[2]}
。但是,我的代码无效。 'key_'+i
没有反映在文字中。
显然,我在这里缺少一些东西。有人能告诉我它是什么吗?...谢谢。
var Parameters=[];
var len = chunks.length;
for (var i = 0; i < len; i++) {
var key='key_'+i
obj= { key : chunks[i]};
Parameters.push(obj)
}
答案 0 :(得分:30)
编辑:使用var obj = {}; obj[key] = chunks[i];
因为ECMAScript将此key
中的{key:1}
视为文字。
答案 1 :(得分:4)
ES2015(via Babel)支持动态键:
const Parameters=[];
const len = chunks.length;
for (let i = 0; i < len; i++) {
const key = `key_${i}`;
obj = { [key] : chunks[i]};
Parameters.push(obj);
}
(注意钥匙周围的括号)
或者更好:
const Parameters = chunks.map((c, i) => ({ [`key_${i}`]: c }));
答案 2 :(得分:0)
同样可以用于查找:obj [key]。请记住obj.key会在对象中寻找键
var obj = {
test:1
}
var key = 'test'
obj.test = obj[key] = 1
这里obj.key不起作用