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