Как программист JS, мы несколько раз наблюдали эту проблему, когда нам нужно удалить определенный элемент из массива.
Возьмем пример
пусть numArray = [58,38,3,2,12,56,7];
Мы хотим удалить число 2 из numArray. Этого можно добиться несколькими способами.
Используйте Array.prototype.filter()
Эта функция вернет новый массив с элементами, переданными функцией обратного вызова.
Эта функция принимает 2 аргумента
- callbackFunction=>Это будет вызвано для каждого элемента и добавлено в новый массив, если оно возвращает true.
- этот
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
- Найдите индекс элемента, используя indexOf
- склеить массив.
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);
Используйте этот код везде, где вам нужно.