@tsimur

Как добавить данные в объект из массива с объектами по ключу?

У объекта есть id, нужно найти в массиве объект с таким же id и добавить ключи со значениями из него в первоначальный объект, если же такого объекта нет в первом массиве, тогда искать во втором и добавить соотвественно со второго. Как это правильно сделать?

1. {id: 1};
2. [{id: 3, value: 1}, {id:1, value: 4}];
3. [{id: 2, value: 9}, {id: 4, value: 2}, {id: 1, value: 3}];

в результате должно быть {id: 1, value: 4}
  • Вопрос задан
  • 303 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
for (const arr of [ arr1, arr2 /* и т.д., можете искать в любом количестве массивов */ ]) {
  const source = arr.find(n => n.id === target.id);
  if (source) {
    Object.assign(target, source);
    break;
  }
}
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
let data = { id: 1 }
const first = [{ id: 3, value: 1 }, { id: 1, value: 4 }]
const second = [{ id: 2, value: 9 }, { id: 4, value: 2 }, { id: 1, value: 3 }]

let result = first.find(o => o.id === data.id)

if (!result) {
  result = second.find(o => o.id === data.id)

  if (!result) {
    result = {}
  }
}

data = {
  ...data,
  ...result
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы