【发布时间】:2018-10-19 10:07:36
【问题描述】:
此代码将删除数组中的所有 'b' 元素。确实如此,但不完全如此。代码执行后还剩下一个'b'。为什么会这样?当我们将第三个参数设置为 splice 方法以将“b”元素更改为另一个时,它运行良好。但只有两个论点,没有。为什么?
let array = ['a','b','c','b','d','e','d','b','b','b','d','d'];
var i = 0;
while (i < array.length){
if (array[i] === 'b'){
array.splice(i,1);
}
i++;
}
console.log(array);
【问题讨论】:
-
您在每次迭代中增加
i,但是当您删除“b”时,您将跳过一个额外的字符,因为删除该字符会使数组更短。
标签: javascript arrays