Есть задачка. Удалить все элементы из массива (arguments[0]), которые содержат значения из arguments[1], [2]..
Т.е destroyer([1, 2, 3, 1, 2, 3], 2, 3) должен удалять 2 и 3 из массива, и возвращать [1, 1]
А destroyer([3, 5, 1, 2, 2], 2, 3, 5) должен вернуть [1].
Я решил с помощью цикла, но нагуглил другой способ это сделать.
function destroyer(arr) {
var args = Array.prototype.slice.call(arguments); // делаем массив
args.splice(0,1); // удаляем первый элемент
return arr.filter(function(element) {
return args.indexOf(element) === -1; // ВОТ ЭТО СРАВНЕНИЕ НЕПОНЯТНО.
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Я не врубаюсь что это значит
args.indexOf(element) === -1;
indexOf возвращает номер элемента массива, а не его значение.
.indexOf() возвращает -1, если этого элемента в искомом массиве нет. Иначе он вернет индекс этого элемента.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники