I have two arrays.
When comparing, if arr1 property id matches with arr2 property id, then add new property tag: assign else add tag: ''
I have tried the below code:
var result = arr1.filter(({ id: id }) =>
!arr2.some(({ name: name }) => name === id)
);
Sample inputs:
var arr1 = [
{id:1, name: "ram"},
{id:24, name: "zen"},
{id: 3, name: "sam"}
]
var arr2 = [
{id:24, name: "zen"},
{id: 3, name: "sam"}
]
Expected Output:
[
{id:1, name: "ram", tag:''},
{id:24, name: "zen", tag: 'yes'},
{id: 3, name: "sam", tag: 'yes'}
]
Set of ids in arr2 using Array#mapArray#map, iterate over arr1 and set tag using Set#hasconst
arr1 = [ {id:1, name: "ram"}, {id:24, name: "zen"}, {id: 3, name: "sam"} ],
arr2 = [ {id:24, name: "zen"}, {id: 3, name: "sam"} ];
const arr2IdsSet = new Set( arr2.map(({ id }) => id) );
const res = arr1.map(e => ({ ...e, tag: arr2IdsSet.has(e.id) ? 'yes' : '' }));
console.log(res);