js中使用splice在一次循環刪除數組中的多個元素


splice():該方法會改變原始數組。

var arr=[1,2,3];
for(var i=0;i<arr.length;i++){
console.log(i+'='+arr[i]);
if(arr[i]==2){
arr.splice(i,1);
}
}
//0=1,1=2,
由結果可以看出,這個循環只循環了兩次,沒有判斷當arr[i]=3的情況,這是因為當 arr[2]==2的時候使用splice將該元素刪除后,該數組的長度變成了2,此時進行循環已經不滿足條件,所以當arr[i]=3的時候沒有再進行循環。

解決方法:

var arr=[1,2,3];
for(var i=arr.length-1;i>=0;i--){
console.log(i+'='+arr[i]);
if(arr[i]==2){
arr.splice(i,1);
}
}
 
————————————————
版權聲明:本文為CSDN博主「努力_才幸福」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_38098192/java/article/details/86153231


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM