日常的代码编写中总少不了实现循环的需求,当你需要对代码块执行多次相同或类似的操作时就要用到循环,其中使用占比最多的当然是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循环,可以控制遍历的顺序
缺点:只能获取元素内容,无法获取下标

以上就是我的一下小总结,主要通过这次整理让自己回顾一下概念知识,欢迎指正错误

不努力
就淘汰


Yoyeo
8 声望0 粉丝

不努力,就淘汰


下一篇 »
说说弹性布局