将对象数组转换为键-值对的对象
这可能是一架2号班机,但由于某种原因,我撞到了墙上。
我想将对象数组转换为键-值对的对象。
因此:
var items = [
{
name: 'hello',
value: ['one', 'two']
},
{
name: 'hi',
value: ['one', 'two', 'three']
}
]
至此:
var items = {
'hello': ['one', 'two'],
'hi': ['one', 'two', 'three']
}
这真的是最优雅的方式吗?
const newObj = {};
items.forEach((item) => {
newObj[item.name] = item.value;
});
我希望最好使用ES6箭头函数。另外,谁能告诉我,您认为在第一种格式或第二种格式中操作这些数据会更容易一些? 就背景而言,我正试图自学拓扑排序。
解决方案
我会用Array.prototype.reduce()
来做,它甚至比Object.fromEntries()
更简洁,肯定比Object.fromEntries()
:
const items = [{name:'hello',value:['one','two']},{name:'hi',value:['one','two','three']}],
result = items.reduce((r,{name,value}) => (r[name]=value,r), {})
console.log(result)
.as-console-wrapper{min-height:100%;}
相关文章