Как программист JS, мы несколько раз наблюдали эту проблему, когда нам нужно удалить определенный элемент из массива.

Возьмем пример

пусть numArray = [58,38,3,2,12,56,7];

Мы хотим удалить число 2 из numArray. Этого можно добиться несколькими способами.

Используйте Array.prototype.filter()

Эта функция вернет новый массив с элементами, переданными функцией обратного вызова.

Эта функция принимает 2 аргумента

  1. callbackFunction=>Это будет вызвано для каждого элемента и добавлено в новый массив, если оно возвращает true.
  2. этот

const numberTobeRemoved = 2;
let numArray = [58,38,3,2,12,56,7];
numArray = numArray.filter(num =› num != numberTobeRemoved);
> console.log(numArray);



используйте Array.prototype.splice()

Splice используется для удаления/обновления содержимого определенной позиции в массиве.



Подход 1

  1. Найдите индекс элемента, используя indexOf
  2. склеить массив.

const numberTobeRemoved = 2;
let numArray = [58, 38, 3, 2, 12, 56, 7];
let rIndex = numArray.indexOf(numberTobeRemoved);
if (rIndex ! = -1)
numArray.splice(rIndex, 1);
console.log(numArray);

Я заметил одну проблему с этим подходом: он не удалит все элементы, потому что indexOf вернет первый индекс заданных элементов.

Подход 2

Цикл, чтобы найти индекс элемента, используя indexOf в цикле, и соединить массив.

const numberTobeRemoved = 2;
let numArray = [58, 38, 3, 2, 12, 56, 7, 2];
let rIndex = -1;
do {
rIndex = numArray.indexOf(numberTobeRemoved);
if (rIndex != -1)
numArray.splice(rIndex, 1);
} while (rIndex != -1)
> console.log(numArray);

Используйте этот код везде, где вам нужно.