ES6常用的迭代方法(every/filter/forEach/map/some/reduce/reduceRight)

两个相似的迭代方法: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

你可能感兴趣的:(ES6常用的迭代方法(every/filter/forEach/map/some/reduce/reduceRight))