To get the difference between two arrays of objects in JavaScript, we use the filter and some methods.
For instance, we write
const arrayOne = [
{ value: "4a55eff3-1e0d-4a81-9105-3ddd7521d642", display: "Jamsheer" },
{ value: "644838b3-604d-4899-8b78-09e4799f586f", display: "Muhammed" },
{ value: "b6ee537a-375c-45bd-b9d4-4dd84a75041d", display: "Ravi" },
{ value: "e97339e1-939d-47ab-974c-1b68c9cfb536", display: "Ajmal" },
{ value: "a63a6f77-c637-454e-abf2-dfb9b543af6c", display: "Ryan" },
];
const arrayTwo = [
{ value: "4a55eff3-1e0d-4a81-9105-3ddd7521d642", display: "Jamsheer" },
{ value: "644838b3-604d-4899-8b78-09e4799f586f", display: "Muhammed" },
{ value: "b6ee537a-375c-45bd-b9d4-4dd84a75041d", display: "Ravi" },
{ value: "e97339e1-939d-47ab-974c-1b68c9cfb536", display: "Ajmal" },
];
const results = arrayOne.filter(
({ value: id1 }) => !arrayTwo.some(({ value: id2 }) => id2 === id1)
);
console.log(results);
to call arrayOne.filter with a callback that calls arrayTwo.some to cheeck if there’s any object with id2, which is the _value property of the item in arrayTwo equal to id1, which is the _value property of the object being looped through in arrayOne.
Then an array with the items in arrayOne without the _value property equal to any entry in arrayTwo object’s _value property is returned.