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

Аватар пользователя Виктория Аблаева
Виктория Аблаева
18 октября 2022

Часто бывает в задачах, что нам требуется удалить из массива определенный элемент.
Один из способов - это воспользоваться функцией высшего порядка 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()
6 0
Аватар пользователя Roman Ashikov
Roman Ashikov
28 октября 2021

Правильным способом удаления элемента из массива будет использование метода splice(). Этот метод принимает три аргумента, но нам нужны только первые два из них. Это индекс начиная с которого мы хотим удалить элементы. А также количество элементов, которые будут удалены из массива. Взгляните на пример ниже:

const letters = ["a", "b", "c"];
const index = 1;
letters.splice(index, 2);
console.log(letters); // => [ 'a' ]
5 0
Аватар пользователя user-f91d7b8e63fd3182
user-f91d7b8e63fd3182
17 декабря 2023

ппц, не думал что удалить элемент из массива по индексу со смещением в 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 );


Зачем разрабы городили огород не понятно.

0 3