将动态键:值对传递给对象文字?

cub*_*ube 10 javascript

我正在使用这段代码(如下所示)尝试填充Parametersfor循环中命名的对象文字 .我需要将该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)
}
Run Code Online (Sandbox Code Playgroud)

med*_*iev 30

编辑:使用 var obj = {}; obj[key] = chunks[i];

由于ECMAScript的对待key这个{key:1}作为文字.


Pau*_*yng 5

ES2015(通过 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);
}
Run Code Online (Sandbox Code Playgroud)

(注意键周围的括号)

或者更好:

const Parameters = chunks.map((c, i) => ({ [`key_${i}`]: c }));
Run Code Online (Sandbox Code Playgroud)