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

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);  //当前数组

        })

你可能感兴趣的:(map、foreach、reduce、filters的用法及区别)