javaScript / map - добавить элемент массив по условию

У меня есть 2 массива c объектами:

  arr1 = [{},{},...]
  arr2 = [{},{},...]

Цель по условию добавить в объекты 1-го массива новый ключ с массивом значений.
Добавить объект сложности не вызывает, но не получается.
Пример:

  const newArr = arr1.map(i1 => {
    arr2.forEach(i2 => {
        if (i1.id === i2.id) {
            i1.newObj = [{exp1: i2.example1, exp2: i2.example2}]
        }
    });
    return i1
});

Так происходит перезапись значения массива и в итоге остается только последнее значение.
Как не заменять, а добавлять в массив значения по выполнению условия?


Ответы (1 шт):

Автор решения: Qwertiy

Вот так (впрочем использование двух вложенных циклов неэффективно):

void (i1.newObj ||= []).push({exp1: i2.example1, exp2: i2.example2})

PS: А за имена переменных и полей руки поотрывать.

→ Ссылка