Få skillnad mellan två arrayer av objekt med ES6 eller TypeScript
Jag har följande arrayer:
arr1 = [{
id: 1,
name: 'Diego',
age: 23
}, {
id: 2,
name: 'Brian',
age: 18
}]
arr2 = [{
id: 1,
name: 'Diego',
age: 23
}, {
id: 2,
name: 'Brian',
age: 18
}, {
id: 3,
name: 'Pikachu',
age: 88
}]
Jag behöver få skillnaden mellan dessa två arrayer, det förväntade resultatet är:
arr3 [{id:3, name: 'Pikachu', age: 88}]
Hur löser jag det här problemet med ES6 eller TypeScript?
Jag försökte använda SET, men det fungerade inte.
Svar #1
Någonting sådant här kanske:
let ids1 = arr1.map(item => item.id);
let ids2 = arr2.map(item => item.id);
let diff = ids1.map((id, index) => {
if (ids2.indexOf(id) < 0) {
return arr1[index];
}
}).concat(ids2.map((id, index) => {
if (ids1.indexOf(id) < 0) {
return arr2[index];
}
})).filter(item => item != undefined);
(kod i lekplats)
