Задать вопрос
@PHPjedi

Как добавить свойство элементам массива, при совпадении их id с id элементов другого массива?

Есть два массива, первый: [{id: 123}, {id: 456}, {id: 789}], и второй:

[
  {id: 123, title: 'Mercedes'},
  {id: 456, title: 'BMW'},
  {id: 789, title: 'Land Rover'},
  {id: 789346, title: 'Lamba'},
  {id: 54534, title: 'Enzo Ferrari'}
]

Если какой-то id присутствует в обоих массивах, то элементам второго массива с таким id надо добавить isAdded: true. Как это сделать?
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Добавить свойство элементам существующего массива:

arr1.forEach(function({ id }) {
  if (this[id]) {
    this[id].isAdded = true;
  }
}, arr2.reduce((acc, n) => (acc[n.id] = n, acc), {}));

Собрать новый массив:

const newArr2 = arr2.map(function({ ...n }) {
  if (this.has(n.id)) {
    n.isAdded = true;
  }
  return n;
}, new Set(arr1.map(n => n.id)));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы