做作業的時候遇到了一個問題,需要刪除數組內所有等於某一值的特定元素時
使用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);
}
就可以很好的刪除掉數組內等於特定值的元素了