如何循环缩小数组

Ren*_*mer 4 javascript arrays for-loop array-splice

假设我有一个这样的数组:

myArray = ["a","b","c","d","e"]
Run Code Online (Sandbox Code Playgroud)

我想遍历它以查找特定值并删除它们。

for(var i=0;i<myArray.length;i++){
    if(myArray[i] == "b")
        myArray.splice(i,1)
}
Run Code Online (Sandbox Code Playgroud)

问题是, splice 从数组中删除了该项目,并且删除的项目前面的所有项目都向下移动一个索引号,因此myArray.length被实例化为 5 但在splice myArray长度仅为 4 之后for循环失败,因为myArray[4]throws typeof框架中的匹配错误。

我正在使用以这种方式工作的框架,这就是为什么我要使用这样的项目删除技术,我的问题是如何以正确的方式执行此操作?该框架使用该splice方法,我使用的是for循环,所以我认为有正确的方法来解决这个问题?

erg*_*aut 5

反转循环:

for(var i=myArray.length-1;i>=0;i--){
    if(myArray[i] == "b")
        myArray.splice(i,1)
}
Run Code Online (Sandbox Code Playgroud)