js數組遍歷、對象遍歷、字符串遍歷


數組遍歷

  • for --使用變量將數組長度緩存起來,在數組較長時性能優化效果明顯
  1.  
    for(var i=0,len=arr.length;i<len;i++){
  2.  
    console.log( "元素:"+arr[i]);
  3.  
    }
  • forEach --ES5語法,對數組的每個元素執行一次提供的函數,不能使用break、return
  1.  
    arr. forEach(function(item,index,arr){
  2.  
    console.log( "元素:"+item+" 索引:"+index+" 整個數組:"+arr);
  3.  
    })
  • map --ES5語法,創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數后返回的結果
  1.  
    arr.map(function( val,index){
  2.  
    console.log( "元素:"+val+" 索引:"+index);
  3.  
    return val*val;
  4.  
    })
  • for...of --ES6語法,可以遍歷Array、Set、Map、String、TypedArray、arguments等可迭代對象,可以使用break、continue
  1.  
    for(let item of arr){
  2.  
    console. log("元素:"+item);
  3.  
    }

對象遍歷

  • for...in --以任意順序遍歷一個對象自有的、繼承的、可枚舉的、非Symbol的屬性,對於每個不同的屬性,語句都會被執行
  1.  
    for(var key in obj){
  2.  
    console.log("屬性:"+key+" 值:"+obj[key]);
  3.  
    }
  • Object.keys() --返回一個由一個給定對象的自身可枚舉屬性組成的數組,數組中屬性名的排列順序和使用for...in循環遍歷該對象時返回的順序一致
Object.keys(obj); 
  • Object.values() --返回一個給定對象自身的所有可枚舉屬性值的數組,值的順序與使用for...in循環的順序相同(區別在於 for-in 循環枚舉原型鏈中的屬性)
Object.values(obj); 
  • Object.getOwnPropertyNames() --返回一個由指定對象的所有自身屬性的屬性名(包括不可枚舉屬性但不包括Symbol值作為名稱的屬性)組成的數組
Object.getOwnPropertyNames(obj); 

字符串遍歷

  • for...of --ES6語法,可以遍歷Array、Set、Map、String、TypedArray、arguments等可迭代對象,可以使用break、continue
  1.  
    for(let char of string){
  2.  
    console. log("字符:"+char);
  3.  
    }

轉載於:https://my.oschina.net/u/3986435/blog/3039936


免責聲明!

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



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