while do/while for for/in forEach map for/each filter every/some indexOf/lastIndexOf
forEach:全部遍历,不能使用break停止。
while(expression)
statement
var i=0;
while(i<10){
console.log(i);
i++;
}
do
statement
while(expression);
do{
}while(条件)
for(initialize;test;increment)
statement
for(var i0;i<10;i++)
{console.log(i)}
for(;;)死循环
forEach
var data = [1,2,3];
var sum= 0;
data.forEach(function(x){sum+=x*x})
sum // => 1+4+9
for(key in obj){}
for循环多用来遍历对象
for/in 循环用来遍历对象属性成员,for/in并不会遍历对象的所有属性只有可枚举的属性才会遍历到
map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组。包含该函数的返回值。
a=[1,2,3]
b=a.map(function(x){return x*x})
filter()方法返回的数组时调用数组的一个子集。
a=[5,4,3,2,1]
b=a.filter(function(x){x<3}) //=>[2,1]
注意:filter会跳过稀疏数组中缺少的元素,返回数组总是稠密的。
every()和some():是数组的逻辑判定,他们对数组元素应用指定的函数进行判定,返回true或false。
对于空数组,every返回true,some返回false
reduce()和reduceRight()方法使用指定的函数将数组元素进行组合,生成单个值。
reduce()需要两个参数,第一个是执行化简操作的函数。第二个参数可选是传给函数的初始值。没有指定初始值,默认使用数组第一个元素作为初始值。
空数组中不带初始值参数调用reduce()将导致类型错误。
reduceRight()的工作原理和reduce一样,不同的是它按照数组索引从高到低(从右到左)处理数组。
indexOf()和lastIndexOf():搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没找到就返回-1。indexOf从头开始搜索,lastIndexOf从结尾开始搜索。
第一个参数是需要搜索的值,第二个参数是可选的,它指定数组中的一个索引,从哪开始搜索。如果省略从头(结尾)开始搜索。第二个参数可以是负数,-1表示最后一个数组的元素。
注意:字符串也有indexOf和lastIndexOf方法。
检查是不是数组:Array.isArray()
for/each循环