Как удалить определенный элемент из массива js
Часто бывает в задачах, что нам требуется удалить из массива определенный элемент.
Один из способов - это воспользоваться функцией высшего порядка filter:
// К примеру, дан массив из чисел:
const numbers = [1, 2, 3, 4, 5];
//необходимо удалить элемент, который равен трём.
const numberToDelete = 3;
//фильтруем исходный массив.
//А для того, чтобы его не мутировать, присвоим его в новую переменную.
const filteredNumbers = numbers.filter((number) => number !== numberToDelete);
console.log(filteredNumbers); // => [1, 2, 4, 5]
//Готово!
Также есть самый явный способ для удаления элемента массива с помощью ключевого слова delete:
let fruits = ['banana', 'orange', 'apple'];
//Допустим, что нам нужно удалить нулевой элемент массива.
delete fruits[0];
console.log(fruits); // => [ <1 empty item>, 'orange', 'apple' ]
Обратите внимание, что на месте нулевого элемента осталось пустое место. Как правило, удалять элемент массива таким способом не является хорошей практикой. Данный способ приведен в качестве примера.
Если вам нужно удалить последний элемент массива, для этого есть способ - это метод pop(). Перейдём к примеру:
const fruits = ['banana', 'orange', 'apple'];
fruits.pop();
console.log(fruits); // получаем => [ 'banana', 'orange' ]
Но это еще не всё!
Одним из наиболее удобных методов для удаления элемента массива является метод splice():
const names = ['John', 'Darina', 'Mark', 'Kris'];
//допустим, что дан массив имён.
// Нам необходимо удалить из массива второй элемент.
names.splice(2, 1); // начиная со второго элемента удаляем один элемент
console.log(names); // => [ 'John', 'Darina', 'Kris' ]
Это не все способы удаления элементов из массива, но и среди указанных можно найти метод по душе или же придумать что-то свое.
Документация:
- Функция высшего порядка filter
- Метод splice()
- Метод pop()
Правильным способом удаления элемента из массива будет использование метода splice()
. Этот метод принимает три аргумента, но нам нужны только первые два из них. Это индекс начиная с которого мы хотим удалить элементы. А также количество элементов, которые будут удалены из массива. Взгляните на пример ниже:
const letters = ["a", "b", "c"];
const index = 1;
letters.splice(index, 2);
console.log(letters); // => [ 'a' ]
ппц, не думал что удалить элемент из массива по индексу со смещением в JS это такой ппц.
// удалить из массива значение по индексу со смещением
// массив который обрабатываем, элемент в массиве который удаляем
function array_splice( array, key ){
resoltArray = new Array();
// перебираем массив
for( let i = 0; i < array.length; i++ ){
if( i != key ){
// добавляем значение в массив
resoltArray.push( array[ i ] );
}
}
return resoltArray;
}
array = array_splice( array, key );
Зачем разрабы городили огород не понятно.