使用splice刪除數組特定元素時的一些問題

做作業的時候遇到了一個問題,需要刪除數組內所有等於某一值的特定元素時

使用splice刪除數組時會改變數組的長度

例如,當想刪除arr數組中等於key的元素時

for(i in arr){

    if(arr[i]==key){

        arr.splice(i,1);

    }

}

使用上面的代碼會導致沒辦法刪除乾淨,是因爲當splice每調用一次就會導致arr.length-1

而i的值沒有改變,會跳過數組中的某些元素

這時候使用

while(arr.indexOf(key)!=-1){

    arr.splice(arr.indexOf(key),1);

}

就可以很好的刪除掉數組內等於特定值的元素了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章