Ответ
В JavaScript есть несколько способов удалить элемент из массива по значению:
- filter() - создает новый массив без указанного элемента:
const arr = [1, 2, 3, 4];
const valueToRemove = 3;
const newArr = arr.filter(item => item !== valueToRemove);
- splice() с indexOf() - изменяет исходный массив:
const arr = [1, 2, 3, 4];
const valueToRemove = 3;
const index = arr.indexOf(valueToRemove);
if (index > -1) {
arr.splice(index, 1);
}
- Лодаш (если используется библиотека):
_.remove(array, value);
Важные нюансы:
filter()не изменяет исходный массивsplice()мутирует массивindexOf()не найдет объекты (нужно использоватьfindIndex())- Для удаления всех вхождений нужно использовать
filter()или цикл сsplice()