zoukankan      html  css  js  c++  java
  • 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);
         
           })

     

  • 相关阅读:
    如何将网格式报表打印成其它样式
    拥有与实力不相称的脾气是种灾难——北漂18年(23)
    8.8.1 Optimizing Queries with EXPLAIN
    mysql 没有rowid 怎么实现根据rowid回表呢?
    secondary index
    8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
    mysql 中key 指的是索引
    8.5.4 Optimizing InnoDB Redo Logging 优化InnoDB Redo 日志
    8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务
    8.5.1 Optimizing Storage Layout for InnoDB Tables InnoDB表的存储布局优化
  • 原文地址:https://www.cnblogs.com/tianranhui/p/9216178.html
Copyright © 2011-2022 走看看