日常的代码编写中总少不了实现循环的需求,当你需要对代码块执行多次相同或类似的操作时就要用到循环,其中使用占比最多的当然是for循环,今天来对这个强大的for ‘家族’ 做做小总结
for
最基础最常用同样也是功能最强大的当然是for循环本身了,来看看基本结构
for(声明循环变量;循环的条件;修改循环变量){ 循环执行的代码块 }
=> for(let i;i<length;i++){ ... }
来个例子:
var arr = [];
for(let i=0;i<5;i++){
arr.push(i);
}
console.log(arr); //[0,1,2,3,4]
for的优点:
可控性强,能做的操作多,你可以在这个代码块中书写复杂的循环条件,以致来修改或达到你所需的效果
缺点:
相对后面要说的循环方式代码较为繁琐,不够简易,比如操作数组的时候,大多时候是针对下标或者内容,而不是实现复杂的业务逻辑
for in
for in用于循环对象属性,当需要遍历一个对象或关联数组,去获取他们每一项的内容或者对其进行操作时,常用到for in,
普通的循环只能遍历索引数组,即下标为数字的数组,而关联数组则是自定义下标名称的数组,
循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
for(变量/下标 in 数组/对象){ 循环执行的操作 }
=> for(var key in arr){ ... }
来个例子:
var score=[76,80,86,73,92];
var sum=0;
for(var key in score){
sum+=score[key];
}
console.log(sum); // 407
适合用来操作关联数组而不是索引数组
forEach
forEach是数组的一个API,如果仅遍历数组而不需要没有返回值,
或仅对原数组中的元素执行修改操作,不需要返回新数组时,
forEach是一个不错的选择,它可以获得数组的下标和内容
arr.forEach(当前内容,下标,数组){ ... }
=> arr.forEach(elem,i,arr){ ... }
// 根据需要选择参数的个数
来个例子:
var nums=[1,2,3,4,5];
nums.forEach(function(elem,i,arr){
arr[i]*=2;
})
console.log(nums); //2,4,6,8,10
优点:既可以获得元素的下标,又能修改元素的内容
缺点:无法控制遍历时候的顺序,是数组API,比如arguments之类的类数组对象使用不了
for of
ES6新增的极简化for循环,常用于遍历索引数组
for(var 数组中的当前元素 of 数组){ ... }
=> for(var elem of arr){ ... }
来个例子:
var names=["Tom","Alex","Pand"]
for(var name of names){//遍历索引数组
//of依次取出names数组中每个人名保存到前边的变量name中
console.log(name + " - 到!");
}
// Tom - 到!
// Alex - 到!
// Pand - 到!
优点:书写简化的for循环,可以控制遍历的顺序
缺点:只能获取元素内容,无法获取下标
以上就是我的一下小总结,主要通过这次整理让自己回顾一下概念知识,欢迎指正错误
不努力
就淘汰
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。