首页 > 解决方案 > 如何在 Javascript 中实例化所有键映射到相同值的字典?

问题描述

我有一个像这样的数组:

let arr = ['ABC', 'DEF']

我想将该数组转换为

let obj = {"ABC": 0, "DEF": 0}

进行这种转换的合适的 ES6 语法是什么?

let arr = ['ABC', 'DEF']
arr.reduce(x => ({[x] : 0 }))

这很接近,但我最终得到{"ABC": 0}

基本上,我想获取一个任意长度的数组,并将该数组中的所有值分配给“默认”值 0。

谢谢!

标签: javascriptarraysecmascript-6arrow-functions

解决方案


只需使用一个简单的循环:

const arr = ['ABC', 'DEF'];
const obj = {};
for (const x of arr) obj[x] = 0;

如果你想变得花哨,我建议Object.fromEntries

Object.fromEntries(arr.map(x => [x, 0]))

推荐阅读