ES6数组的新增功能,还是很强大的好多地方用的到

map,reduce,filter ,forEach 废话不多说代码走起

map 映射   就是一个对一个 

    /*  比如:学生成绩分数对应及格不及格
      也可以做一些算数运算
        */       
        let chengji = [12, 58, 99, 86, 45, 91]; 
        /*可以接收返回的值*/
        let result = chengji.map( item=> {
            if (item >= 60) {
                alert(item + "及格")
        }
        else {
            alert(item + "不及格回家叫家长")
          
        }
        })

reduce 汇总   一堆出来一个

        /*算出总数*/
        let arr = [12, 69, 180, 8763];
        /*       
        tmp  临时结果(每次第一个数和第二个数相加的结果),
     item  第二个数开始走 ,
       index  下标(它这里是从第1个开始)
        */
        let result = arr.reduce(function (tmp, item, index) {
            //alert(tmp + ',' + item + ',' + index);
            return tmp + item;
        });
        alert(result);

        /*算出平均分*/
        let result1 = arr.reduce(function (tmp, item, index) {
            if (index != arr.length - 1) { //判断不是最后一次
                return tmp + item;
            } else { //最后一次哪这总数除以长度
                return (tmp + item) / arr.length;
            }
        });

        alert(result1);

filter 过滤器  (可以过滤josn或是数组)

  /*过滤出大于10000元商品*/
    let arr=[
      {title: '男士衬衫', price: 75},
      {title: '女士包', price: 57842},
      {title: '男士包', price: 65},
      {title: '女士鞋', price: 27531}
    ];
        //返回的是一个数组
     /*简写方式一行代码就搞定*/
    let result=arr.filter(json=>json.price>=10000);
     /*不用简写麻烦*/
    let result1=arr.filter(function(item){       
        if(item.price>=10000)
        {
            
            return true;
        }
    })
    console.log(result)
    for(var  i=0;i<result1.length;i++)
    {
        //取出arr里面的title
        alert(result[i].title)
    }
    /*取出能被3整除的数*/
    //它是返回一个bool值,true返回 false过滤掉
    let arr1=[12,5,8,99,27,36,75,11];
    //
    let result2=arr1.filter(item=>item%3==0);
       
    alert(result2)

forEach     循环(迭代)

   /*这个简单没啥说的*/
        let arr=[12,5,8,9];
        let arr1=[12,5,8,9];
       // item 数组  index 下标 
        /*简写*/
       arr.forEach((item,index)=>{
            alert(index+': '+item);
  
        });


       arr1.forEach(function(item,index){
           alert(index + ': ' + item);
     
       })

 

原文地址:https://www.cnblogs.com/tianranhui/p/9216178.html