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

     

  • 相关阅读:
    权值线段树 学习笔记
    Codeforces Round #585 (Div. 2)
    a题解
    01Trie学习笔记
    学习笔记--线段树合并与分裂
    [NOIP10.6模拟赛]1.merchant题解--思维+二分
    [NOIP10.6模拟赛]2.equation题解--DFS序+线段树
    [NOIP10.5模拟赛]1.a题解--离散化+异或线段树
    [NOIP10.5模拟赛]3.c题解--思维
    [NOIP10.3模拟赛]3.w题解--神奇树形DP
  • 原文地址:https://www.cnblogs.com/tianranhui/p/9216178.html
Copyright © 2011-2022 走看看