js數組遍歷,對象遍歷


Js數組遍歷

1. forEach()
  循環數組,不會改變元素,不會返回新數組

  arr.foreach((value,index)=>{})

2. map()

  遍歷數組,對每個元素進行處理,之后返回元素;會返回一個新數組。

  var arr2 = arr.map((value,index)=>{value++ return value})

3. some()
  遍歷數組,在回調函數里進行條件的判斷,返回 true 或 false 。當有一個元素滿足條件時就停止遍歷並返回true;當全部的元素都不滿足要求時,返回false

  var bool = arr.some((value,index)=>{return value>3})

4. every()
  遍歷數組,同上。當有一個元素不滿足條件時就停止遍歷並返回false;當全部元素都滿足時,返回true

  var bool = arr.every((value,index)=>{return value>3})

5. filter()

  遍歷數組,在回調函數里進行條件判斷,當結果為true時,將該元素返回,組成一個新數組。

  var arr2 = arr.filter((value,index)=>{return value>3})

  var arr2 = arr.filter((value,index)=>{ if(value>3){return true}  })

6. reduce()  //reudce:濃縮

  reduce(callback,init)  init為初始值。

  當init為空時,回調函數第一次執行的res是數組的第一個元素,value是第二個;第二次執行的時候res是第一次執行返回的內容,value是第三個元素;之后同第二次

  當init不為空時,回調函數第一次執行的res是init,value是第一個元素;當第二次執行時res是第一次執行返回的內容,value是第二個元素;第三次的value是第三個元素

  var result = arr.reduce((res,value)=>{res = res+value return res})

  var result = arr.reduce((res,value)->{res = res+value return res},100)

7.使用for-of遍歷


     不僅支持數組,還支持大多數類數組對象,例如DOM NodeList對象.

     也支持字符串遍歷,它將字符串視為一系列的Unicode字符來進行遍歷.
var arr=["張三","李四","王五","趙六"];

for (var value of arr){

    console.log(value);

}

  8.使用for..in..遍歷

var arr=["張三","李四","王五","趙六"];

for (var i in arr){

console.log(i,":",arr[i]);

}

  

Js對象遍歷

1、使用Object.keys()遍歷  

返回一個數組,包括對象自身的(不含繼承的)所有可枚舉屬性(不含Symbol屬性).
var obj = {'0':'a','1':'b','2':'c'};

Object.keys(obj).forEach(function(key){

     console.log(key,obj[key]);

});

  

2、使用for..in..遍歷     

循環遍歷對象自身的和繼承的可枚舉屬性(不含Symbol屬性).
var obj = {'0':'a','1':'b','2':'c'};

for(var i in obj) {

     console.log(i,":",obj[i]);

}

  

3、使用Object.getOwnPropertyNames(obj)遍歷

      返回一個數組,包含對象自身的所有屬性(不含Symbol屬性,但是包括不可枚舉屬性).
var obj = {'0':'a','1':'b','2':'c'};
Object.getOwnPropertyNames(obj).forEach(function(key){

    console.log(key,obj[key]);

});

  

4、使用Reflect.ownKeys(obj)遍歷

      返回一個數組,包含對象自身的所有屬性,不管屬性名是Symbol或字符串,也不管是否可枚舉. 
var obj = {'0':'a','1':'b','2':'c'};
Reflect.ownKeys(obj).forEach(function(key){

console.log(key,obj[key]);

});

  

 


免責聲明!

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



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