Сравнить 2 поля массивов объектов

Имеется 2 массива объектов, один большой, второй маленький. У объектов большого массива имеются поля id, ЗНАЧЕНИЯ которых я должен сравнить со ЗНАЧЕНИЯМИ полей type, которые имеется у вложенных объектов маленького массива. Если найдется совпадение, то поля name из большого массива объектов вывести на экран. Подскажите, как элегантно и правильно это можно сделать?


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

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

Не уверен, правильно ли я понял исходные структуры и нужный формат вывода. Вот пример с использованием временной структуры данных, чтобы не приходилось каждый раз перебирать заново второй массив по объектам:

const array1 = [
  { id: 1, name: 'A' },
  { id: 2, name: 'B' },
  { id: 3, name: 'C' },
];

const array2 = [
  { type: 1 },
  { type: 2 },
];

const types = new Set(array2.map(({ type }) => type));

for (const { id, name } of array1) {
  if (types.has(id)) console.log(name);
}

→ Ссылка