我有一个对象数组。我只想检查对象的id是否相同,并返回那个特定的对象,没有重复。
的例子。
let arr1 = [
{id: 1, name: 'A'},
{id: 3, name: 'C'},
{id: 1, name: 'A'},
{id: 2, name: 'B'},
{id: 2, name: 'B'}
]
result I want:
let newArr = [
{id: 1, name: 'A'},
{id: 2, name: 'B'}
]
result I get:
let arr1 = [
{id: 1, name: 'A'},
{id: 3, name: 'C'},
{id: 2, name: 'B'}
]
我试着:
arr1.reduce((destArray, obj) => {
if (destArray.findIndex(i => i.id === obj.id) < 0) {
return destArray.concat(obj);
} else {
return destArray;
}
}, [])
作为结果,我得到的对象与匹配的id,但也有对象与唯一的id。但是我不需要它们。
const newArr = arr1.filter((obj, index, self) => {
return self.findIndex(i => i.id === obj.id) === index && self.lastIndexOf(i => i.id === obj.id) !== index;
});