js 各种循环语法

forEach() //调用数组每个元素,并将元素传递给回调函数(注意没有办法跳出或终止forEach语句,除非抛出异常)

array.forEach(function(value, index, arr),thisValue)

  value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值

  返回值:undefined

例:
num=[1,2,3,4,5]
num.forEach(number => {
    console.log(num)  //1 2 3 4 5
});

map() //返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

 array.map(function(value, index, arr),thisValue)
 value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值

 返回值:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

var num=[1,2,3,4,5]
var dnum=num.map(number=>{
    return number*2
})
console.log(dnum)  //[2,4,6,8,10]

find() //返回通过测试的数组的第一个元素的值
array.find(function(value, index, arr),thisValue)
value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值
var arr = [1,2,3,4,5,6,7];
var ar = arr.find(function(elem){
return elem>5;
});
console.log(ar);//6
console.log(arr);//[1,2,3,4,5,6,7]

filter() //创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
array.filter(function(value, index, arr),thisValue)
value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值
var arr = [1,2,3,4,5,6,7];
var ar = arr.filter(function(elem){
return elem>5;
});
console.log(ar);//[6,7]
console.log(arr);//[1,2,3,4,5,6,7]

every()  some()

every 若目标数组中每一个对象都符合条件则返回true,否则返回false

some 若目标数组中有一个或一个以上的对象符合条件的返回true,否则返回false

var users = [
{name:"Jill",age:10},
{name:"Alex",age:18},
{name:"Bill",age:20},
{name:"Tony",age:24}
];

var isAdult_every=users.every(user=>{
return user.age>18;
})

var isAdult_some=users.some(user=>{
return user.age>18;
})

console.log(isAdult_every) //false
console.log(isAdult_some) //true

reduce()

常用于叠加,可以代替forEach等

var numbers = [1,2,3,4,5];
var sumValue = numbers.reduce(function(sum,number2){ //第一个参数为叠加总值,需要初始化,第二个参数是当前项
return sum + number2;
},0); //sum的初始化
console.log(sumValue); //15



原文地址:https://www.cnblogs.com/kongwei/p/12316661.html