Нахождение общих элементов двух массивов

Положите значения второго массива в Set и отфильтруйте первый по наличию в нём. Так результат сохранит порядок первого массива.

Короткий ответ

Что ответить на собеседовании

Положите значения второго массива в Set и отфильтруйте первый по наличию в нём. Так результат сохранит порядок первого массива.

Подробный разбор

Ответ с пояснениями

Условие

Реализуйте функцию, которая принимает два массива уникальных чисел и возвращает массив, содержащий только те значения, которые встречаются в обоих входных массивах.

Ответ

Положите значения второго массива в Set и отфильтруйте первый по наличию в нём. Так результат сохранит порядок первого массива.

function intersection(a, b) {
  const values = new Set(b);
  return a.filter(value => values.has(value));
}

Уникальность входных чисел гарантирована условием, поэтому отдельное удаление дубликатов не требуется. Для [3,1,2] и [2,3,4] ответ — [3,2]. Исходные массивы не меняются. При обычной хеш-реализации ожидаемое время O(n + m), дополнительная память O(m), не считая результата.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее