Как перебрать массив и удалить элементы в JavaScript [duplicate]

На этот вопрос уже есть ответ здесь:

Цикл по массиву и удаление элементов без прерывания цикла 12 ответов

У меня есть массив элементов, и мне нужно удалить некоторые из него. Проблема в том, что JavaScript неКажется, что у каждого цикла есть, и если я использую цикл for, я сталкиваюсь с проблемами с ним, в основном пытаясь проверить элементы за пределами массива или пропустить элементы в массиве, потому что индексы меняются. Позвольте мне показать вам, что я имею в виду:

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 изменяется, и если я жестко закодирую границы, то, возможно, я пытаюсь исследовать элементы за пределами массива. И что'лучший способ сделать эту невероятно простую вещь?

Ответы на вопрос(6)

Ваш ответ на вопрос