.map相当于.forEach来创建一个对象
下面的代码填充了一个对象result,该对象以 in 中的值keys作为键和一个空字符串作为每个键的值。这是按预期工作的。
const keys = ['one', 'two', 'three'];
const result = {};
keys.forEach(key => {
result[key] = '';
});
console.log(result);
但是,我想知道是否result可以使用.map. 下面是我尝试过的,但它产生了一组对象而不是单个对象。
const result = keys.map(key => ({
[key]: ''
}));
console.log(result);
回答
你可以结合Object.fromEntries和map方法。有了map你可以得到的阵列[key, value]对,然后通过调用fromEntries你从数组的对象。
const keys = ['one', 'two', 'three'];
const result = Object.fromEntries(keys.map(k => ([k, ''])))
console.log(result)