Удаление нескольких элементов из массива в JavaScript.

Метод filter() Array создает новый массив со всеми элементами, которые проходят проверку, реализованную предоставленной функцией.

Пример:

const array = [1, 2, 3, 4, 5]; 
const predicate = (v) => v !== 2; 
array.filter.(predicate); // [1, 3, 4, 5]

Вышеупомянутый метод filter вызовет predicate()для каждого элемента массива и создаст новый массив всех значений, для которых predicate()возвращает значение, к которому выполняется приведение true.

В нашем случае он вернет все значения, в которых элемент не равен 2.

Удаление одного элемента

А теперь начнем с простой задачи. Сначала нам нужно удалить один элемент из массива.

Давайте создадим функцию removeItem, которая будет принимать 2 аргумента. Первым аргументом будет массив, из которого мы удалим элемент, а вторым аргументом будет элемент, который мы хотим удалить из массива.

Наша функция predicate проверит весь элемент из массива, и если элемент не соответствует указанному нами значению, она построит новый массив, используя переданные значения.

Если вы посмотрите на код, приведенный ниже, то увидите, что мы получили ожидаемый результат.

const removeItem = (array, itemToRemove) => 
  array.filter(v => v !== itemToRemove); 

removeItem([1, 2, 3, 4, 5]); // [1, 2, 4, 5]

Удаление нескольких элементов

Перед удалением нескольких элементов мы должны изучить другой вызываемый метод массива includes().

Метод массива includes()определяет, включает ли массив определенное значение среди своих элементов, возвращая, при необходимости, истину или ложь.

const array = [1, 2, 3, 4, 5]; array.includes(1); // true

Теперь , используя filter()и includes() , мы можем удалить несколько элемент из массива.

Перепишем нашу функцию removeItem в removeItems.

const removeItems = (array, itemToRemove) => { 
  return array.filter(v => { 
    	return !itemsToRemove.includes(v); 
    });
} 
removeItems([1, 2, 3, 4, 5], [1, 4]); // [2, 3, 5]

Как вы можете видеть, мы изменили нашу функцию к этому: !itemsToRemove.includes(v). Это вернет истину, если значение не существует в массиве itemsToRemove.

Таким образом мы можем удалить несколько элементов из массива.

Ответить