我想有这个对象:
const m = {a:undefined, b:undefined, d:undefined};
但更愿意从数组中生成它:
const m = {}
const l = ["a","b","c"];
for (const i in l){
m[l[i]] = undefined;
}
但是使用es6时这样做会更好吗?
答案 0 :(得分:2)
您可以使用for/of
,但Array#reduce
(自ES5以来存在)可能更优雅:
const m = ['a', 'b', 'c'].reduce((o, k) => (o[k] = undefined, o), {});
但是,如果你需要这么多,我建议创建一个具有正确名称的可重用函数。
答案 1 :(得分:1)
您可以Array#map
对象的每个属性,并使用spread syntax和Object#assign
组合它们:
const m = Object.assign(...['a', 'b', 'c'].map((prop) => ({ [prop]: undefined })));
console.log(m);