平常的代码编写中总少不了实现循环的需求,当你须要对代码块执行屡次相同或相似的操做时就要用到循环,其中使用占比最多的固然是for循环,今天来对这个强大的for ‘家族’ 作作小总结数组
最基础最经常使用一样也是功能最强大的固然是for循环自己了,来看看基本结构 for(声明循环变量;循环的条件;修改循环变量){ 循环执行的代码块 } => for(let i;i<length;i++){ ... }
来个例子:code
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(var key in arr){ ... }
来个例子:io
var score=[76,80,86,73,92]; var sum=0; for(var key in score){ sum+=score[key]; } console.log(sum); // 407
适合用来操做关联数组而不是索引数组
forEach是数组的一个API,若是仅遍历数组而不须要没有返回值, 或仅对原数组中的元素执行修改操做,不须要返回新数组时, forEach是一个不错的选择,它能够得到数组的下标和内容 arr.forEach(当前内容,下标,数组){ ... } => arr.forEach(elem,i,arr){ ... } // 根据须要选择参数的个数
来个例子:console
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之类的类数组对象使用不了
ES6新增的极简化for循环,经常使用于遍历索引数组 for(var 数组中的当前元素 of 数组){ ... } => for(var elem of arr){ ... }
来个例子:for循环
var names=["Tom","Alex","Pand"] for(var name of names){//遍历索引数组 //of依次取出names数组中每一个人名保存到前边的变量name中 console.log(name + " - 到!"); } // Tom - 到! // Alex - 到! // Pand - 到!
优势:书写简化的for循环,能够控制遍历的顺序 缺点:只能获取元素内容,没法获取下标
以上就是个人一下小总结,主要经过此次整理让本身回顾一下概念知识,欢迎指正错误function
不努力
就淘汰基础