js數組遍歷和對象遍歷

針對js各類遍歷做一個總結分析,從類型用處:分數組遍歷和對象遍歷;還有性能,優缺點等。數組

JS數組遍歷:

1,普通for循環,常常用的數組遍歷瀏覽器

var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ console.log(arr[i]); }

2,優化版for循環:使用變量,將長度緩存起來,避免重複獲取長度,數組很大時優化效果明顯緩存

for(var j = 0,len = arr.length; j < len; j++){ console.log(arr[j]); }

3,forEach,ES5推出的,數組自帶的循環,主要功能是遍歷數組,實際性能比for還弱函數

arr.forEach(function(value,i){
  console.log('forEach遍歷:'+i+'--'+value);性能

})優化

forEach這種方法也有一個小缺陷:你不能使用break語句中斷循環,也不能使用return語句返回到外層函數。spa

4,map遍歷,map便是 「映射」的意思 用法與 forEach 類似設計

arr.map(function(value,index){ console.log('map遍歷:'+index+'--'+value); });

map遍歷支持使用return語句,支持return返回值code

var temp=arr.map(function(val,index){ console.log(val); return val*val }) console.log(temp); 

forEach、map都是ECMA5新增數組的方法,因此ie9如下的瀏覽器還不支持對象

5,for-of遍歷 是ES6新增功能

for( let i of arr){ console.log(i); }
  • for-of這個方法避開了for-in循環的全部缺陷
  • 與forEach()不一樣的是,它能夠正確響應break、continue和return語句 

for-of循環不只支持數組,還支持大多數類數組對象,例如DOM NodeList對象

for-of循環也支持字符串遍歷

JS對象遍歷:

1,for-in遍歷

for-in是爲遍歷對象而設計的,不適用於遍歷數組。

遍歷數組的缺點:數組的下標index值是數字,for-in遍歷的index值"0","1","2"等是字符串

for (var index in arr){ console.log(arr[index]); console.log(index); }
相關文章
相關標籤/搜索