不管是js原生自带的循环,还是一些工具包里面的循环(比如jquery里的$.each),里面的循环有多种多样.作为一个有强迫症的人,总是想选择最好的循环方式,效率最高的,最优雅的.在这里我只列举js自带的循环.虽然一些工具包里的循环看似很强大,但其本质上也是对js循环进行了封装而已,而且如果你不引进这些js文件,根本就无法使用它里面的循环方法.为了可以更无忧无虑的使用,推荐使用js原生的,在具有性能的优势上,也是挺优雅的.
对数组对象的遍历
第一种:普通for循环
for(i=0;i<arr.length;i++){
console.log(arr[i])
}
第二种:优化版for循环
for(j = 0,len=arr.length; j < len; j++) {
console.log(arr[j])
}
第三种:foreach循环
arr.forEach(function(v,i){ //v==value 为arr项,i==index 为arr索引
console.log(i+' 'v );
})
第四种:map遍历
var temp=arr.map(function(val,index){
console.log(val);
return val*val
})
第五种:for in 遍历
for(var i in arr){
console.log(arr[i]);
}
第六种:forof遍历(需要ES6支持)
for( let i of arr){
console.log(i);
}
效率最高的当属for循环的优化版,支持break,continue,
最优雅的当属map循环方式,支持使用return语句,遍历后返回数组
普通对象的遍历
ar obj = {'a':'a','b':'b','c':'c'};
for(var key in obj) {
console.log(key,":",obj[key]);
}
对象的遍历只有这一种方法,所以我们只需要记这一种就行
现在我不会为选用哪种循环而苦恼的,因为我只给自己列了3个选择,对于数组只有for循环优化版,和map优雅版;对于对象我只有1种,总之我不会为了选择循环而迷茫了