Сравнить значения вложенных объектов массива с элементами другого массива
Имеется массив типа первый массив типа:
const arr1 = [7, 7, 6, 7, 8, 4, 8, 6, 6, 2]
Затем имеется второй массив, массив объектов
const arr2 = [
{id: 1, type: 'book'},
{id: 2, type: 'some'},
{id: 3, type: 'cat'},
{id: 4, type: 'dog'},
{id: 5, type: 'apple'},
{id: 6, type: 'pig'},
{id: 7, type: 'pen'}
]
Нужно id вложенных объектов массива arr2 сравнивать с элементами массива arr1. Если найдется совпадение, то есть id будет равен первому совпавшему числу из массива arr1, то значение type вывести в консоль. Подскажите, как реализовать такой функционал?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Если правильно понимаю, можно так:
const arr1 = [7, 7, 6, 7, 8, 4, 8, 6, 6, 2];
const arr2 = [
{id: 1, type: 'book'},
{id: 2, type: 'some'},
{id: 3, type: 'cat'},
{id: 4, type: 'dog'},
{id: 5, type: 'apple'},
{id: 6, type: 'pig'},
{id: 7, type: 'pen'}
];
for (const { id, type } of arr2) {
if (arr1.includes(id)) console.log(type);
}
Если первый массив большой, экономнее будет проверять по Set:
const arr1 = [7, 7, 6, 7, 8, 4, 8, 6, 6, 2];
const set = new Set(arr1);
const arr2 = [
{id: 1, type: 'book'},
{id: 2, type: 'some'},
{id: 3, type: 'cat'},
{id: 4, type: 'dog'},
{id: 5, type: 'apple'},
{id: 6, type: 'pig'},
{id: 7, type: 'pen'}
];
for (const { id, type } of arr2) {
if (set.has(id)) console.log(type);
}