Задать вопрос
@Alex_87

Функциональный подход решение задачи с массивом?

Добрый вечер! Задание следующее: Реализуйте функцию getDifference, которая принимает на вход два массива, а возвращает массив, составленный из элементов первого, которых нет во втором. Сделайте решение функциональным.

Я написал следующее:
function getDifference(arr1, arr2){
  let newArr = [];
     const result = (arr1, arr2) => newArr.map(arr1 => arr1).filter(arr1 => arr2.includes(arr1)) ? arr1 : arr2;
}
console.log(getDifference([2, 1], [2, 3));

Логика решение, как я понимаю, должна быть такая:
1) С помощью map, перебираем первый массив
2) С помощью filter, перебираем второй массив, и ищем в нём элементы первого. Если не находим - возвращаем этот элемент.
Знаю, что мой код неправильный. Но что не так? Как его исправить?
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Я бы сделал так:

Сначала идёт по второму массиву. На его основе создаём хаш-массив, индексами которого являются значения второго массива, а значения неважно какие (видимо, ненулевые, как-то так).

Затем проходим по первому массиву, и каждый элемент запрашиваем в хаш-массиве, который создали выше. Если такой элемент в хаш-массиве есть - то исключаем его из первого массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы