1,普通for循環,經常用的數組遍歷
var arr = [1,2,3,4,5]; for ( var i = 0; i <arr.length; i++){ console.log(arr[i]); }
2,優化版for循環:使用變量,將長度緩存起來,避免重復獲取長度,數組很大時優化效果明顯
var arr = [1,2,3,4,5]; for(var j = 0,len = arr.length; j < len; j++){ console.log(arr[j]); }
3,forEach,ES5推出的,數組自帶的循環,主要功能是遍歷數組,實際性能比for還弱
var arr = [1,2,3,4,5]; arr.forEach(function(value,i){ console.log('forEach遍歷:'+i+'--'+value); })
forEach這種方法也有一個小缺陷:你不能使用break語句中斷循環,也不能使用return語句返回到外層函數。
4,map遍歷,map即是 “映射”的意思 用法與 forEach 相似
var arr = [1,2,3,4,5]; arr.map(function(value,index){ console.log('map遍歷:'+index+'--'+value); });
map遍歷支持使用return語句,支持return返回值
var arr = [1,2,3,4,5]; var temp=arr.map(function(val,index){ console.log(val); return val*val; }) console.log(temp);
forEach、map都是ECMA5新增數組的方法,所以ie9以下的瀏覽器還不支持
5,for-of遍歷 是ES6新增功能
var arr = [1,2,3,4,5]; for( let i of arr){ console.log(i); }
與forEach()不同的是,它可以正確響應break、continue和return語句
for-of循環不僅支持數組,還支持大多數類數組對象。
6,for-in遍歷
var arr = [1,2,3,4,5]; for (var index in arr){ console.log(index+"-->"+arr[index]); }
在眾多的循環遍歷方式中,它的效率是最低的