收藏
回答

对象数组去重保留最后一个元素?

原始数组
arr = [
  {id:1,name:'张三'},
  {id:1,name:'李四'},
  {id:1,name:'王五'},
  {id:2,name:'赵六'},
  {id:2,name:'田七'},
]

预期结果
 arr=[
    {id:1,name:'王五'},
    {id:2,name:'田七'},
 ]

根据id去重,保留最后一个元素,使用最简单的方法怎么实现???
回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2020-07-09

    let obj = {}

    for (let item of arr) obj[item.id] = item

    Object.values(obj)

    或者

    Object.values(arr.reduce((total,item)=>{total[item.id]=item;return total},{}))

    2020-07-09
    有用 2
    回复 4
    • zhiou
      zhiou
      2020-07-09
      结果是{1:{id:1,name:‘’},2:{id:2,name:‘’}}
      2020-07-09
      回复
    • 卢霄霄
      卢霄霄
      2020-07-09回复zhiou
      后面还有个 Object.values(obj)
      2020-07-09
      回复
    • 👀
      👀
      2020-07-09
      部分机型不支持Object.values
      2020-07-09
      回复
    • 卢霄霄
      卢霄霄
      2020-07-09回复👀
      项目默认都勾了ES6转ES5,如果没转的话 那就只能自己实现了
      2020-07-09
      回复
登录 后发表内容
问题标签