Главная Категории Контакты Поиск

Удаление элементов из массива

Как удалить определенные элементы из массива.

JavaScript·03.02.2020·читать 1 мин 🤓·Автор: Alexey Myzgin

Функция remove удаляет элементы из массива, для которых переданная функция возвращает false.

Используем Array.prototype.filter(), чтобы найти элементы массива, которые возвращают истинные значения и Array.prototype.reduce() вместе с Array.prototype.splice() чтобы удалить элементы из оригинального массива. Также, вызов этой функции вернёт массив с теми элементами, которые были удаленны из оригинального массива. Функция func вызывается с тремя аргументами (value, index, array).

const remove = (arr, func) =>
  // Проверяем, является ли arr массивом.
  Array.isArray(arr)
    // Фильтруем массив arr применяя функцию func к каждому элементу.
    ? arr.filter(func).reduce((acc, val) => {
        // Удаляем отфильтрованные элементы из оригинального массива.
        arr.splice(arr.indexOf(val), 1);
        // Возвращаем новый массив только с отфильтрованными элементами.
        return acc.concat(val);
      }, [])
    : [];

// Пример:

const arr = [1, 2, 3, 4, 5, 6];
const func = n => n % 2 === 0;

remove(arr, func); // [2, 4, 6]
// arr = [1, 3, 5]

Website, name & logo
Copyright © 2022. Alex Myzgin