如何在 Javascript 中实例化所有键都映射到相同值的字典?

How can I instantiate a dictionary in Javascript where all keys map to the same value?

我有一个像这样的数组:

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

我想将该数组转换为

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

进行该转换的适当 ES6 语法是什么?

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

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

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

谢谢!

你只是在制作像地图这样的单一对象。您需要继续返回对象。

const arr = ['ABC', 'DEF']
const result = arr.reduce((o, k)  => ({[k] : 0, ...o }), {});
console.log(result)



const result2 = arr.reduce((o, k)  => (o[k] = 0, o), {});
console.log(result2)

只需使用简单的循环即可:

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

如果你想花哨,我推荐Object.fromEntries:

Object.fromEntries(arr.map(x => [x, 0]))
obj = arr.reduce((result, item, index) => {
  result[item] = 0
  return result
}, {})

希望这对您有所帮助。如果您有任何问题,请告诉我。

您可以只使用 Array.reduce 并传递一个空对象作为初始值,如下代码所示:

var arr = ["ABC","DEF"].reduce((a,b)=> (a[b]=0,a),{});
console.log(arr);