js數組循環刪除某些項的方法


常規操作

  場景:當我們在實際需求中需要去循環數組並且要刪除數組中某些符合項的時候

  我們一般會不假思索的這么干:

var arr = [1,2,2,3,4,5];
 var len = arr.length;
 for(var i=0;i<len;i++){
     if(arr[i]==2){
          arr.splice(i,1);
     }
 }
console.log(arr) // [1,2,3,4,5]

  那么問題來了,怎么還有一個符合條件的沒有刪掉呢?什么鬼,哈哈。。。。

  分析原因:

    原因為當刪除掉了一個元素后,數組的索引發生的變化,造成了程序的異常。

  解決問題:

    方法一:

      采用倒序的方式來循環

var arr = [1,2,2,3,4,2];
 var len = arr.length-1;
 for(var i=len;i>=0;i--){
 if(arr[i]==2){
  arr.splice(i,1);
 }
 }
 console.log(arr);

    方法二:

      更簡介的方式

var arr = [1,2,2,3,4,5];
 var i = arr.length;
 while(i--){
 if(arr[i]==2){
  arr.splice(i,1);
 }
 }
 console.log(arr);

不知道對你有沒有幫助,以上就是此類問題的全部解答。


免責聲明!

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



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