两个相似的迭代方法:every和some,区别在于:every()是数组中的每一项都返回true,则最终迭代结果返回true,否则false;some()是数组中的某一项返回true,则最终迭代结果返回true,否则返回false;
例如: let arr=[1,2,3,4,5];
let result= arr.every((item)=>{
return item>2
});
console.log(result); //false
let result1=arr.some((item)=>{
return item>2
});
console.log(result1) //true
感觉every()或者some()适合用来做校验之类的功能~
filter() 过滤函数,从原函数中返回符合条件的项,如果没有return,则返回的是空数组;
例如: let arr=[1,2,3,4];
let result=arr.filter((item)=>{
return item > 2
});
console.log(result) //[3,4]
map() 返回和原数组长度一样的数组,如果没有return,则返回长度一样的数组,并且每一项都是undefined
例如: let arr=[1,2,3,4];
let result=arr.map((item)=>{
return item*2;
});
console.log(result); //[2,4,6,8]
forEach() 没有返回值,作用和for循环作用一样,用来迭代数组的每一项,但是感觉比for更简便;
reduce()和reduceRight()作用一致 reduce():从数组的左边迭代数组的每一项,构建最终的一个返回值,接受四个参数(前一个值,当前值,索引,数组本身),第一次迭代的时候,前一个值是数组的第一项,当前值是数组的第二项,返回值作为下一次迭代的前一个值,当前值会是下一个索引的项,如果没有返回值则第二次迭代的前一个值为undefined;reduceRight()的区别是迭代的顺序是从右向左,即从最后一位开始往前迭代;
例如: let arr=[1,2,3,4];
let result=arr.reduce((prev,cur)=>{
return prev+cur;
});
console.log(result); //10