Удаление определенного значения или значений из массива в 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() может оказаться именно тем решением, которое вам нужно.