В чем ошибкаа в функции?? Хотел реализовать функцию которая принимает на вход два массива и убирает из первого массива все что находится во втором. Но код не работает правильно, может кто подскажет в чем проблема?function arrayDiff(a, b){
a.forEach(e => {
if(b.includes(e)){
a.splice(a.indexOf(e), 1);
}
});
return a;
}

21 Мая 2020 в 19:46
196 +1
0
Ответы
1

Проблема в том, что вы изменяете массив a во время итерации по нему с помощью forEach, что может привести к непредсказуемым результатам.

Решение этой проблемы можно найти, например, при помощи метода filter, который создает новый массив на основе условия, не изменяя исходный массив:

function arrayDiff(a, b){
return a.filter(e => !b.includes(e));
}

Этот код создаст новый массив, в котором будут содержаться все элементы из массива a, которые не содержатся в массиве b.

18 Апр 2024 в 11:50
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир