Какие знаешь быстрые способы удалить элемент из массива по значению

«Какие знаешь быстрые способы удалить элемент из массива по значению» — вопрос из категории Алгоритмы, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В JavaScript есть несколько способов удалить элемент из массива по значению:

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

Важные нюансы:

  • filter() не изменяет исходный массив
  • splice() мутирует массив
  • indexOf() не найдет объекты (нужно использовать findIndex())
  • Для удаления всех вхождений нужно использовать filter() или цикл с splice()