对象数组中,合并某一属性值相同的元素,组成新的子对象数组

时间:2020-8-22 作者:admin

举个例子:

let data = [
  {name:'aaa', id:'1', color:'blue'},
  {name:'aaa', id:'2', color:'green'}
];
let temp = [];
data.forEach(x => {
  let index = temp.findIndex(y => y.name == x.name);
  if (index == -1) {
    temp.push({
      name: x.name,
      list:[{
        id: x.id,
        color:x.color
      }]
    })
  } else {
    temp[index].list.push({
      id: x.id,
      color:x.color
    })
  }
})

结果:

[
  name: 'aaa',
  list: [
    {id:'1', color:'blue'},
    {id:'2', color:'green'}
  ]
]
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。