如何将集合(对象数组)映射到具有集合对象成员中的键和值的对象? 该集合是:
const collection = [{
id: 1,
url: 'http://url1.com'
}, {
id: 2,
url: 'http://url2.com'
}, {
id: 3,
url: 'http://url3.com'
}];
结果应该是:
{
1: 'http://url1.com',
2: 'http://url2.com',
3: 'http://url3.com'
}
最好使用 lodash
最佳答案
最简单的方法是循环遍历 collection
数组并向对象添加新的键值对,如下所示:
const collection=[{id:1,url:'http://url1.com'},{id:2,url:'http://url2.com'},{id:3,url:'http://url3.com'}];
const ouptut = {};
for (const o of collection)
ouptut[o.id] = o.url
console.log(ouptut)
另一种方法是使用 map
创建一个二维条目数组,如下所示:
[ [1,"http://url1.com"], [2,"http://url2.com"], [3,"http://url3.com"]]
然后使用 Object.fromEntries()
从这些条目创建一个对象
const collection=[{id:1,url:'http://url1.com'},{id:2,url:'http://url2.com'},{id:3,url:'http://url3.com'}];
const ouptut = Object.fromEntries(collection.map(o => [o.id, o.url]))
console.log(ouptut)
关于javascript - 将集合映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56885734/