我有一个对象数组:
const obj = [{
id: 1,
name: 'A'
}, {
id: 1,
name: 'A'
}, {
id: 1,
name: 'A'
}, {
id: 2,
name: 'A'
}, {
id: 2,
name: 'A'
}]
// this method returned me one object with id=1
const filter = obj.reduce((val, index) => {
return index === val.findIndex(v => obj.id === v.id && obj.name === o.name)
})
当我按下按钮时,我想删除其中一个重复的对象。例如,我在一个数组中有 3 个 ID=1 的对象。我只想删除一个 ID=1 的对象,而不是两个。所以结果一定是这样的:
const obj = [{
id: 1,
name: 'A'
}, {
id: 1,
name: 'A'
}, {
id: 2,
name: 'A'
}, {
id: 2,
name: 'A'
}]
您可以通过使用
id=1
查找第一个对象的索引,然后使用 Array.prototype.splice()
将其删除来实现此目的:
const obj = [ { id:1, name:'A' }, { id:1, name:'A' }, { id:1, name:'A' }, { id:2, name:'A' }, { id:2, name:'A' } ];
const targetId = 1;
const indexToRemove = obj.findIndex(item => item.id === targetId);
if (indexToRemove !== -1) {
obj.splice(indexToRemove, 1);
}
console.log(obj);