Sobes.tech
Назад к вопросам
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), что важно при больших массивах.