徹底弄明白 for循環、forEach、for in 、for of 、map、filter的用法及區別


1、for循環:for循環是成熟且穩定的JS語法,可以很多復雜的環境中運行,當大量數據及復雜邏輯的時候,for循環性能最佳,它能通過每個屬性的 i 去針對性查找

  let arr1=[1,2,3,4,5,6]
  let newArr=[]


// for循環
    for(let i=0;i<arr1.length;i++){
        newArr.push(arr1[i]*2)
    }

輸出結果

 

 

2、for..in..:也是JS循環的一種,但是性能很低效,因為它會遍歷數組里的每一個屬性,包括不知名或者動態添加的屬性,全部查找遍歷的內存開銷很大,所以再開發盡量不要用for in 

 let arr1=[1,2,3,4,5,6]
    let newArr=[]

//for in 
    for(let x in arr1){
        newArr.push(arr1[x]*2)
    }

輸出結果:

 

3、for...of...

    let arr1=[1,2,3,4,5,6]
    let newArr=[]
    //for of
    for(let item of arr1){
        newArr.push(item*2)
    }

輸出結果:

 

4、forEach:不會返回結果,必須要通過外部數組push

    let arr1=[1,2,3,4,5,6]
    let newArr=[]

    //forEach:不會返回一個結果,而是undiefund
    arr1.forEach(item=>{  
        newArr.push(item*2)
    })

輸出結果:

 

5、map:返回一個新數組,它不會檢測一個空數組,也不會改變原始數組

    let arr1=[1,2,3,4,5,6]//map:map返回一個新的數組,不會檢測空數組,也不會改變原始數組
    let newArr=arr1.map((item)=>{
        return item*2
    })
    

輸出結果:

 

6、filter:遍歷過濾,它不會對空數組進行檢測,也不會改變原始數組,它能通過篩選條件快速給出遍歷結果,不符合條件的就不會去遍歷,符合條件的才會遍歷,極大的節省了遍歷開銷成本

    let arr1=[1,2,3,4,5,6]

    function filterFN(num){
        return num>3
    }
    let newArr=arr1.filter(filterFN)

篩選結果:

 

 具體的業務場景,用最合適方法


免責聲明!

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



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