Hay dos matrices y ambas tienen atributos de identificación junto con otras propiedades. El requisito es comparar dos matrices y crear una nueva para agregar la propiedad de edad al objeto correspondiente en arr1
let arr1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }]; let arr2 = [{ id: 1, age: 20 }, { id: 3, age: 35 }]; const newArr = []; arr1.forEach(obj => { return arr2.forEach((obj2) => { if (obj.id === obj2.id) { newArr.push(Object.assign({}, obj, { age: obj2.age })) } }) }) console.log(newArr); //outputs [{id:1, name: 'a', age:20}, {id:3, name: 'c', age:35}]No sé si es la solución más elegante, pero puedes crear tu función y mapearla:
let arr1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }]; let arr2 = [{ id: 1, age: 20 }, { id: 3, age: 35 }]; function addAge(elt, arr2) { let elt_w_age = arr2.find(x => x.id === elt.id); if (elt_w_age != null) { elt.age = elt_w_age.age return elt } else { return null } } console.log(arr1.map(x => addAge(x, arr2)).filter(x => x !== null))