将对象数组转换为键-值对的对象 [英] Convert array of objects to object of key-value pairs

查看:51
本文介绍了将对象数组转换为键-值对的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能是一架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()

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
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%;}

这篇关于将对象数组转换为键-值对的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆