采用 i-- 的方式,因為splice方法會改變數組,如果采用 i = 0;i++;的方式遍歷進行刪除操作,會產生遺漏項
在代碼中,遍歷列表是從后向前循環,這樣在列表中移除當前位置時,不會影響列表中未遍歷到的位置;如果是從前向后遍歷,那么當從列表中移除當前位置時,后面的會自動行前移動一個位置,這樣會導致下一輪循環時跳過一個元素。
function delFalseValInArr (){ let arr = [true,false,false,true,false] for(let i = arr.length - 1;i > -1;i--){ let item = arr[i] if(!item){ arr.splice(i,1) } } return arr }