对象数组根据对象的KEY生成新数组

对象数组,根据对象的不同KEY生成新数组,

如把 [{name: 'toy', age: 20},{name: 'jim', age: 30},{name: 'sam', age: '25}]

转成

{name: ['toy', 'jim', 'sam'], age: [20, 30, 25]}

分析:首先循环遍历数组,取得对象后获取key,再将key添加到新的obj内(注意添加的使用需要判断obj内是否已存在相同key 不要重复添加key),最后将key对应的value值push到对应key的数组内。

let newArr = chartData.reduce((obj, cur) => {
     Object.keys(cur).map((item) => {
           if (!obj[item]) {
                 obj[item] = [cur[item]]
           } else {
                 obj[item].push(cur[item])
           }
      })
      return obj
}, {})

 

posted @ 2022-12-02 17:07  方小川  阅读(728)  评论(0编辑  收藏  举报