Tengo dos matrices.
Al comparar, si la id de la propiedad arr1 coincide con la id de la propiedad arr2 , agregue una nueva tag: assign otra tag: ''
He probado el siguiente código:
var result = arr1.filter(({ id: id }) => !arr2.some(({ name: name }) => name === id) );Ejemplos de entradas:
var arr1 = [ {id:1, name: "ram"}, {id:24, name: "zen"}, {id: 3, name: "sam"} ] var arr2 = [ {id:24, name: "zen"}, {id: 3, name: "sam"} ]Rendimiento esperado:
[ {id:1, name: "ram", tag:''}, {id:24, name: "zen", tag: 'yes'}, {id: 3, name: "sam", tag: 'yes'} ]Set de ID en arr2 usando Array#mapArray#map , itere sobre arr1 y establezca la tag usando Set#has const 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);