У меня есть массив элементов и вам нужно удалить некоторые из них. Проблема в том, что JavaScript, похоже, не имеет для каждого цикла, и если я использую цикл for, я сталкиваюсь с проблемами с ним, в основном, пытаясь проверить элементы за пределами массива или отсутствующие элементы в массиве, потому что индексы меняются , Позвольте мне показать вам, что я имею в виду:Как перебрать массив и удалить элементы в JavaScript
var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = 0; i < elements.length; i++){
if(elements[i] == 5){
elements.splice(i, 1);
}
}
Проблема заключается в том, что, когда элементы [1] удаляют элементы [2] становится элементы [1]. Поэтому первая проблема заключается в том, что некоторые элементы никогда не рассматриваются. Другая проблема заключается в том, что .length изменяется, и если я жестко кодирую границы, тогда я могу попытаться изучить элементы за пределами массива. Так что лучший способ сделать это невероятно просто?
'elements.splice (i--, 1);' –
мне не нравится "-" или "++" синтаксис но полезный совет при запуске с начала массива +1 – Xotic750
См. также: [Цитирование и удаление элементов, без прерывания цикла] (http://stackoverflow.com/q/9882284/1591669) – unor