首页 > 解决方案 > “[]”在此代码段中如何工作?这是 ES6 的特性吗?

问题描述

我想从现有数组中创建一个对象数组

即 [1,2,3] 应该变成 => [{1:1} , {2:1} , {3:1}]

下面的代码是我最初的尝试,但结果是 [{element : 1} , {element : 1}, {element : 1}]

let scores = [1,2,3];
let sr = [];
scores.forEach(element => {
    sr.push({ element : 1 });
});

我在“元素”周围加上方括号,令我惊讶的是它起作用了。

let scores = [1,2,3];
let sr = [];
scores.forEach(element => {
    sr.push({ [element] : 1 }); // this works but I have no clue how :(
});

很抱歉这个问题措辞含糊,但我很想知道背后的原因。

标签: javascriptecmascript-6

解决方案


当您想要设置动态key. 我建议使用.map

const scores = [1,2,3];
const sr = scores.map( element => ({ [element] : 1 }) );
console.log(sr);


推荐阅读