Положите значения второго массива в 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), не считая результата.