.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.fromEntriesmap方法。有了map你可以得到的阵列[key, value]对,然后通过调用fromEntries你从数组的对象。

const keys = ['one', 'two', 'three'];
const result = Object.fromEntries(keys.map(k => ([k, ''])))
console.log(result)


以上是.map相当于.forEach来创建一个对象的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>