Удаление нескольких элементов из массива в 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
.
Таким образом мы можем удалить несколько элементов из массива.