js中最常用的幾種遍歷數據方法


https://blog.csdn.net/wanwan5856/article/details/79618024

forEach,Object.keys,map,for in ,for of,reduce,every

  1. forEach 用於遍歷【數組】

    data.forEach(( item, index ) => {
        console.log('元素:', item ,';下標:', index)
    })
    
  2. Object.keys() 和 forEach() 結合遍歷【對象】

    // Object.keys返回一個數組,數組元素是輸入對象所有的鍵名的集合
    
    Object.keys(testData).forEach((key)=>{   
        console.log(key) //鍵
        console.log(testData[key]) //值
    }) 
    

    注意:Object.keys出來的順序不一定是對象屬性原來的順序,順序和for..in相同。

    另外Object.keys還有一個妙用就是獲取對象的長度,在js中數組長度可用length得到,對象長度用length獲取的結果是undefined,使用Object.keys(obj).length就可以得到對象長度了。

  3. for...of (es6)用於遍歷【數組】內的【元素】,不包括原型屬性和索引名

    let myArray = [1,2,4,11,6,7]
    for (let value of myArray) {
        console.log(value)  //一次輸出元素1、2、4、11、6、7
    }
    
  4. for...in (es5)用於遍歷【對象/數組】內的【鍵名】,包括原型屬性 (所以慎用!)

    let myArray = ['a',123,{a:'1',b:'2'}] 	//或為對象myArray = {a:'1',b:'2'}
    for(let index in myArray){
        console.log(index,myArray[index]) 	//輸出鍵名 和 元素值
    }
    
    // 注意1:for..in會把某個類型的原型(prototype)中的方法與屬性遍歷出來
    // 不想遍歷原型方法和屬性的話,可以在循環內部使用hasOwnPropery方法可以判斷某屬性是否是該對象的實例屬性
    if(!array.hasOwnProperty(i)){
        continue;
    }
    
    // 注意2:for..in遍歷對象{}時出來的順序不一定是對象屬性原來的順序,順序和Object.keys相同。
    


免責聲明!

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



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