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: А за имена переменных и полей руки поотрывать.