往数组对象里面push一个新的对象时,判断如果有id相同的就覆盖这个对象

往数组对象里面push一个新的对象时,判断如果有id相同的就覆盖这个对象改怎么做,用了许多方法去重都是保留原来的对象。。

let arr = [{
    id:'1',
    name:'a'
},{
    id:'2',
    name:'b'
}]

let obj = {
    id:'2',
    name:'c'
}

arr.push(obj)

//console.log(arr)
怎么让打印出来是如下的对象
{
    id:'1',
    name:'a'
},{
    id:'2',
    name:'c'
}
阅读 6.6k
2 个回答
const idx = arr.findIndex(i => i.id == obj.id)
idx < 0 ? arr.push(obj) : arr.splice(idx, 1, obj)

image.png
哦,忘了 加push;在else里面加,去掉return

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题