Javascript while循环中的If语句
此代码将从数组中删除所有“b”元素。确实如此,但并非完全如此。代码执行后仍有一个“b”。为什么会这样?当我们在splice方法中设置第三个参数以将一个“b”元素更改为另一个元素时,效果很好。但只有两个论点,没有。为什么?Javascript while循环中的If语句,javascript,arrays,Javascript,Arrays,此代码将从数组中删除所有“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.
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);
let数组=['a','b','c','b','d','e','d','b','b','b','d','d'];
var i=0;
while(i
当应用拼接
方法时,数组被重新索引
。当从给定数组中删除一个元素时,您将跳过索引
解决方案是在拼接后减小i
的值
let数组=['a','b','c','b','d','e','d','b','b','b','d','d'];
var i=0;
while(i console.log(数组)
在每次迭代中,您都会递增i
,但是当您删除一个“b”时,您会跳过一个额外的字符,因为删除该字符会使数组变短。在后续步骤中,我希望过滤掉该数组中元素“b”的每一次出现。不是全部。我无法使用filter()实现它。我会用这种方法完成工作吗?