循環遍歷數組/對象


1、for循環

  1)常規寫法

    

 

 

   2) arr.lengh緩存下來:實際上,緩存后比常規寫法效率要低

    

 

 

  3)小技巧:邊賦值邊判斷,第二個分號中是判斷的內容,每次循環時會對其進行判斷,當i++大於arr的長度時,arr[i++]=underfined 在JS中0 null   underfined '' 都會轉換為false,循環停止。

    

 注意:for循環使用break、continue和return都可以退出

  1)break:終止循環,只能用在循環語句中

    

 

 

 

 

 

   2)continue:跳出當前循環。繼續下一個循環

   

 

 

   3)return 表達式:用於指定函數返回的值,只能用在函數體中。

    執行return false;語句會終止函數的執行,返回到函數的調用處,即使后面還有其他的語句也

    不再執行。

      

2、for of:ES6推出的用於迭代字符串、數組、類數組對象、map、set等一切可以迭代的結構。

      注意:不能迭代對象

  1)字符串與數組

     

  2)類數組對象 

     

  3)set結構

        

   4)map結構

          

 

 3、for in(ES5):主要用於遍歷數組或者對象中的屬性,不推薦直接遍歷數組,因為遍歷的是數組中的索引

        

 

 

 4、forEach():用於遍歷數組

  forEach(function(){},thisValue)

    *  function(currentVal,index,arr){ }

      - currentVal:當前遍歷的值

      -  index:代表當前的索引值

      -  Arr:可選,當前遍歷的對象

    *  thisValue:參數函數的this值,默認為window

  

 

 

 

     注意:存在的問題就是在遍歷完所有元素之前不能停止,沒有break語句。如果需要強制退出,使用try catch語句,在catch中return

     

 

 

 

 5、map():map()方法返回一個新數組,新數組返回值為原數組元素調用函數處理后的值。(用於對數組的元素進行一些處理)

    和forEach()方法一樣,只能用於遍歷數組,不能用於對象

   

 6、filter():返回過濾后的數組,不會改變原數組。(用於數組的過濾)

    

 

 7、some():檢測數組的元素是否滿足指定條件,返回布爾值。不會改變原數組

   

 

 8、every():用於檢測數組元素是否都滿足條件,返回布爾值,不會改變原數組

  

 9、reduce():

   

 

 

 

 

   

  


免責聲明!

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



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