Если вы не хотите искать в arr1
каждый элемент из arr2
(решение O (n²)), вы можете создать объект поиска для arr1
, связанный с id
. Затем вы можете просто выполнить цикл arr2
, объединяя найденный объект, просматривая его. Это будет более эффективно, если у вас есть большие массивы.
let arr1 = [{id: 100, quantity: 2, grp: '1A'},{id: 101, quantity: 2, grp: '2A'}]
let arr2 = [{id: 101, color: "#FFF"}, {id: 100, color: "#000"}]
// make lookup
let lookup = arr1.reduce((lookup, item) => lookup.set(item.id, item), new Map)
// assign color to correct object
arr2.forEach(({id, ...rest}) => Object.assign(lookup.get(id), rest))
console.log(arr1)