Найти в Дзене
IT Заметки

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

Оглавление

Удаление определенного значения или значений из массива в JavaScript - довольно распространенная задача. Выполнить ее несложно, однако существует несколько подходов, каждый из которых имеет свои плюсы и минусы. Выбор правильного зависит от конкретного случая использования.

Array.prototype.filter()

Не изменяет исходный массив, а возвращает новый. Однако для больших массивов, когда удаляемые элементы встречаются только один раз, необходимо учитывать производительность. Array.prototype.filter() всегда перебирает все элементы в массиве, что в некоторых случаях может быть непрактично.

const arr = ['a', 'b', 'c']; const filtered = arr.filter(el => el !== 'b'); // ['a', 'c'] console.log(arr); // ['a', 'b', 'c']

В большинстве случаев Array.prototype.filter() является лучшим вариантом для удаления элементов из массива.

Array.prototype.splice()

Распространенный подход для удаления элементов из массива. Хотя Array.prototype.splice() является очень универсальным инструментом в вашем наборе, нужно помнить, что он мутирует исходный массив. Кроме того, он возвращает удаленные элементы вместо нового массива.

const arr = ['a', 'b', 'c'];
const deleted = arr.splice(1, 1); // ['b'].
console.log(arr); // ['a', 'c'].

Если вы не против изменения массива, то Array.prototype.splice() может оказаться именно тем решением, которое вам нужно.