问答

怎样合并数组对象中id相同的数据

作者:admin 2021-05-06 我要评论

原数组: [{id: "1000001", value:[1.1, "1.1"]}, {id: "1000002", value:[2.1, "2.1"]}, {id: "1000001", value: [1.2, "1.2"]}, {id: "1000002", value:[2.2, ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

原数组: [{id: "1000001", value:[1.1, "1.1"]},
{id: "1000002", value:[2.1, "2.1"]},
{id: "1000001", value: [1.2, "1.2"]},
{id: "1000002", value:[2.2, "2.2"]},
{id: "1000001", value: [1.3, "1.3"]},
{id: "1000002", value:[2.3, "2.3"]},
]
期待的数组:
[
{id: "1000001", value:[[1.1, "1.1"],[1.2, "1.2"],[1.3, "1.3"]]},
{id: "1000002", value:[[2.1, "2.1"],[2.2, "2.2"],[2.3, "2.3"]]},
]
请各位路过的大佬帮忙,谢谢了!

###
function dedup (arr = []) {
  const mp = {}
  for (let obj of arr) {
    const { id , value} = obj
    if (mp[id]) {
      mp[id].value.push(value)
    } else {
      mp[id] = {id, value: [value]}
    }
  }
  return Object.values(mp)
}
const data = [{id: "1000001", value:[1.1, "1.1"]},
{id: "1000002", value:[2.1, "2.1"]},
{id: "1000001", value: [1.2, "1.2"]},
{id: "1000002", value:[2.2, "2.2"]},
{id: "1000001", value: [1.3, "1.3"]},
{id: "1000002", value:[2.3, "2.3"]},
]
console.log(dedup(data))
###
a.reduce((val, next) => {
    val[next.id] = val[next.id] ? val[next.id].concat(next.value) :  next.value
    return val
}, {})

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 怎样合并数组对象中id相同的数据

    怎样合并数组对象中id相同的数据

  • Command "swoole&amp

    Command "swoole&amp

  • 微信小程序 如何使用地图显示小区轮廓

    微信小程序 如何使用地图显示小区轮廓

  • vue embed引入pdf失效

    vue embed引入pdf失效

腾讯云代理商
海外云服务器