javascript - 如何合并数组里某个key值一样的对象,合并后把不相同的值放到一个数组
伊谢尔伦
伊谢尔伦 2017-06-26 10:57:14
0
2
644

初始时
var old = [

{ id: 1, name: "first" }, { id: 2, name: "first" }, { id: 3, name: "second" }, { id: 4, name: "second" }

]
希望得到的结果
var new = [

{ a: [1, 2], b: "first" }, { a: [3, 4], b: "second" }

]

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复 (2)
学习ing

供参考

var new = Array.from( old.reduce((dict, item)=> { if (dict.has(item.name)) { dict.get(item.name).push(item.id) } else { dict.set(item.name, [item.id]) } return dict }, new Map()) ).map(item => ({a: item[1], b: item[0]}))
    大家讲道理

    原数组是

    var old = [ { id: 1, name: "first" }, { id: 2, name: "first" }, { id: 3, name: "second" }, { id: 4, name: "second" } ]

    期望得到

    new = [ { a: [1, 2], b: "first" }, { a: [3, 4], b: "second" } ]

    实现

    var getNew = old => { let temp = old.reduce((acc, cur) => { if (acc[cur.name]){ acc[cur.name].push(cur.id); } else { acc[cur.name] = [cur.id] } return acc; }, {}); return Object.keys(temp).map(key => { return { a: temp[key], b: key } }) }

    Just RungetNew(old)

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!