js Notes-总结js循环遍历

1 for 循环
语法:for( 初始化; 循环执行条件; 每遍历一个元素后做的事情;){}

for循环只能遍历数组, 不能遍历对象.

2 do while 循环
语法:do{...}while(true)

See the Pen do...while by w4ctech (@w4ctech) on CodePen.

do while 循环只保留对循环条件的判断,所以需要在循环内部使用break终止循环,如果不使用break终止,则会造成死循环;如果使用continue跳出本次循环,为了保证循环能够自动进入到下一次遍历。需要将i++遍历语句放在while头部。否则进入死循环
死循环

3 forEach 循环
语法:array.forEach(functtion(item,index){}), item表示值,index表示索引。

forEach无法在IE中使用;forEach无法使用breakcontinue跳出循环,使用return时,效果和在for循环中使用continue一致

4 for in 循环
语法 for (var item in array){}, item 可以是数组元素,也可以是对象的属性。

5 $.each 循环
语法 $.each(array|object,function(index,element)),index表示当前索引值,element当前的元素。

this指向当前属性的值。

6 $(selecter).each 循环
语法:$(select|array|object).each(function(index,element)) ,可以遍历数组和对象。

this表示当前遍历的值。不能调用jQuery方法, 如需调用jquery方法需要用$符号包裹.$(this)

7 map 循环
语法:array.map(function())
map()方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。function类型指定的处理函数。

原数组被“映射”成对应新数组:

map获取对象数组中的特定属性值:

Array.prototype扩展可以让IE6-IE8浏览器也支持map方法:

map()和filter()详解

8 every循环
语法:array.every(function(item, index, array)) item 当前元素的值,index 当前元素索引值,array 当前元素属于的数组对象

every() 不会对空数组进行检测;every() 不会改变原始数组
arr.every(callback[, thisArg]) every方法用于检验数组中的每一项是否符合某个条件, 若符合则放回true, 反之则返回false.

arr.every(function(item,index,arr){console.info(item);return true});

  1. every遇到return则返回,不再往下执行

arr.every(function(item,index,arr){console.info(item););

  1. 没有return时,只执行一次则默认返回false