如何在 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);
我有一个像这样的数组:
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);