map、foreach、reduce、filters的用法及区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map、foreach、reduce、filters的用法及区别相关的知识,希望对你有一定的参考价值。

参考技术A 1、 map方法,用于映射数据,返回映射后的数据。如下方,将arr数组中的成绩映射为及格或者不及格(返回新数组) 。

      let arr = [73,23,54,89,99,30,23];

      //正常写法

      let arr1 = arr.map(function(item)

          return item>60?'及格':'不及格';

      );

      //简写,利用箭头函数

      let arr2 = arr.map((item) =>

        return item>60?'及格':'不及格';

      );

      //语法精简2(箭头函数的特性,参数有且只有一个)

      let arr3 = arr.map(item => item>60?'及格':'不及格');

2、reduce方法,累加器,用于数据累加。如下方进行求和:

      let arr = [1,2,3,4,5];

      //普通写法

      let arr1 = arr.reduce(function(tem,item,index) 

          //  参数  tem  代表两个数的结果,一开始代表数组的第一个元素,第二次则代表第一次return回来的值

          //  参数  item  一开始代表第二个数组元素,第二次则代表当期元素

          if(index == arr.length-1)

              return (tem + item)/(index+1);

          else

              return tem + item;

         

      );

      //精简写法

      let arr2 = arr.reduce((tem,item,index) =>

          return index == arr.length-1?(tem + item)/(index+1):tem + item;

      );

3、filter,用于过滤数据,当返回元素为true时,返回该元素。如下方,只保留数据中的奇数(返回新数组):

        let arr = [1,2,3,4,5,6,7];

        //普通写法

        let arr1 = arr.filter(function(item)

            return item %2 ==1?item:'';

            // return item %2 ==1?true:false;

        )

        //精简写法

        let arr2 = arr.filter(item =>item %2 ==1);

4、forEach,遍历数据

        let arr = [1,2,3,4,5]

        arr.forEach((item,index,arr) =>

                alert(item) ;//当前值

                alert(index);//当前下标

                alert(arr);  //当前数组

        )

对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解

1.forEach()

用法:array.forEach(function(item,index){})

没有返回值,只是单纯的遍历

2.map()

用法:array.map(function(item,index){})

遍历并对其进行操作,返回新数组,原数组不变

3.filter()

用法:array.filter(function(item,index){})

筛选符合条件的元素并返回新数组,原数组不变

4.find()

用法:array.find(function(item,index){})

返回符合条件的第一个元素,原数组不变

5.every()

用法:array.every(function(){item,index})

检测是否所有元素符合条件,返回true或false

6.some()

用法:array.some(function(){item,index})

检测数组中是否满足条件的元素,返回true或false

7.reduce()

用法:array.reduce(function(pre,item){})

            pre:初始值,或第一个元素的值,或上一次叠加的结果

数组从左到右做累加操作并返回最后的结果(array=[1,2,3,4,5] 就是1和2经function操作完返回的结果再和3操作,如此到最后只得到一个值)

 

 

自己的理解,如果有错误望指出

 

以上是关于map、foreach、reduce、filters的用法及区别的主要内容,如果未能解决你的问题,请参考以下文章

[转] 对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解

ES6 数组函数forEach()map()filter()find()every()some()reduce()

javascript 原生JavaScript方法的实现(forEach,Map,Filter,Reduce,Every,Some)

js数组中indexOf/filter/forEach/map/reduce详解

ES6 数组map(映射)reduce(汇总)filter(过滤器)forEach(循环迭代)

最简单语言理解Array扩展的新方法,map,reduce,filter,forEach