JavaScript | Как удалить элемент массива?

JavaScript | Как удалить элемент массива?

 

Способ № 1  — Удаление элемента массива со сдвигом

Есть массив:

let arr = [22, 33, 11, 77, 56, 39, 323]

Нам нужно удалить элемент со значением 77 и сдвинуть оставшуюся часть влево (ближе к началу).

Сделать это можно при помощи метода filter():

arr.filter(i => i != 77)

В фильтр мы передаём стрелочную функцию, в которой проверяем Нам вернётся новый массив, без элемента со значением 77. «Пустот или дыр» в массиве не будет.

Удалили один элемент массива и сдвинули остальные методом filter() - JavaScript
Удалили один элемент массива и сдвинули остальные методом filter() — JavaScript

Важно! Метод filter() не изменяет оригинальный массив. Он просто вызывается на оригинальном массиве, но возвращает всегда новый экземпляр. Это говорит о том, что вызов метода filter() никак не влияет на оригинальный массив.

Поэтому, чтобы изменить оригинальный массив, нужно написать выражение:

arr = arr.filter(i => i != 77)

 

Способ № 2  — использование оператора delete

Мы можем удалить значение элемента из массива при помощи оператора delete. Для этого мы пишем слово delete и справа от него пишем конструкцию, которая будет обращаться к нужному нам элементу массива. Стандарт ECMAScript — Раздел «13.5.1 The delete Operator» — https://tc39.es/ecma262/#sec-delete-operator

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

var massiv = [1, 2, 3, 4]
delete massiv[0]
[empty, 2, 3, 4]
Удалили первый элемент массива - JavaScript
Удалили первый элемент массива — JavaScript

Из оригинального массива мы удалили нужное нам значение элемента, но теперь в массиве образовалась «дырка». Браузер нам подсвечивает эту дырку словом «empty«. Если сейчас попытаться обратиться к первому элементу массива, то мы получим undefined, т. к. такого значения элемента уже не существует.

Первого элемента массива не существует, он был удалён - JavaScript
Первого элемента массива не существует, он был удалён — JavaScript

Мы успешно удалили ЗНАЧЕНИЕ элемента массива. Причём удобно то, что все оставшиеся элементы массива не изменили своего положения. Значения лежат под теми же индексами.

 

Информационные ссылки

JavaScript | Массивы (Array)

Стандарт ECMAScripthttps://tc39.es/ecma262/multipage/

Стандарт ECMAScript — Раздел «23.1.3.8 Array.prototype.filter ( callbackfn [ , thisArg ] )» — https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.filter

Стандарт ECMAScript — Раздел «ReservedWord» (Зарезервированные слова) — https://tc39.es/ecma262/#prod-ReservedWord