Назад к вопросам
Middle
3
Практическая задача: работа с двумя массивами объектов — сравнение по ключу с использованием Map-структур и обход двумя циклами
Компании, где спрашивали
Basis
Ответ от нейросети
sobes.tech AI
Для сравнения двух массивов объектов по ключу с использованием Map и обходом двумя циклами можно сделать так:
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
const arr2 = [
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
// Создаем Map из первого массива для быстрого поиска по id
const map1 = new Map();
arr1.forEach(item => map1.set(item.id, item));
// Сравниваем с элементами второго массива
arr2.forEach(item => {
if (map1.has(item.id)) {
console.log(`Найден общий элемент с id=${item.id}`);
} else {
console.log(`Элемент с id=${item.id} уникален для второго массива`);
}
});
// Альтернативно, обход двумя циклами (менее эффективно):
for (const item1 of arr1) {
for (const item2 of arr2) {
if (item1.id === item2.id) {
console.log(`Общий элемент: id=${item1.id}`);
}
}
}
Использование Map позволяет снизить сложность поиска с O(n*m) до O(n+m), что важно при больших массивах.