javascript - “[]”在此代码段中如何工作?这是 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 :(
});
很抱歉这个问题措辞含糊,但我很想知道背后的原因。
解决方案
当您想要设置动态key
. 我建议使用.map
:
const scores = [1,2,3];
const sr = scores.map( element => ({ [element] : 1 }) );
console.log(sr);
推荐阅读
- vue.js - 在动态加载的组件中获取自我
- android - DAO 注入问题 - 在 Hilt Android 中找不到 RoomDatabase
- azure - Azure Budget ARM 模板部署未经授权
- python - 如何仅列出最小值
- c++ - Mongocxx如何查询文档数组
- javascript - React fullCalendar - 交互不起作用
- javascript - 使用 useState 时收到警告
- c - 为什么指针 s 的地址和我们访问未命名数组的第一个元素时一样?
- angular - RxJS 仅从数组中获取更改的对象
- javascript - 如何等待一个函数完成然后在 ES6 中调用另一个函数?