• 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);
         
           })

     

  • 相关阅读:
    while语句的使用
    Sql Server2008忘记sa登陆密码
    C# 读取Excel到DataTable两种方式对比
    读《太阳照常升起》-海明威
    年终总结-2019 混沌收获
    如何在调试状态下部署局域网网站
    HTML-文本标签
    HTML-表单
    HTML-入门
    正则表达式大全
  • 原文地址:https://www.cnblogs.com/tianranhui/p/9216178.html
Copyright © 2020-2023  润新知