zoukankan      html  css  js  c++  java
  • 数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤)

    数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤)
    map()方法返回一个由原数组中每一个元素调用一个指定方法后返回的新数组
    reduce()方法接受一个函数作为累加器,数组中的每一个值开始缩减,最终为一个值。最终的返回结果为一个值
    foreach() 遍历数组方法
    filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组
     
    map,filter都是生成一个新数组,不同的是map处理的方法里面returen 新数值,filter里面return true/false 
     
     
    map用于所有元素进行处理,并生成新元素,原数组不变
     
    el:求圆的面积
    var radii=[10,20,30]
    var areas=radii.map((radius)=>{
        var area=Math.PI * (radius * radius);
        return area.toFixed(0);
    });
    console.log(areas);
    输出结果:["314","1257","2827"]
     
    reduce用于元素累加、元素比较大小
     
    el:拼接所有数组
    [[0,1],[2,3],[4,5]].reduce((acc,cur)=>acc.concat(cur));
    输出结果:[0,1,2,3,4,5]
     
    filter用于过滤
     
    el:排除掉小于10的数
    var isBigEnough=(element)=>{
        return element >10;
    }
    [12,5,8,120,44].filter(isBigEnough);
    输出结果:[12,120,44]
     

    高阶用法:面试题上的
     
    el:数组去重 filter + indexOf
    function unique(arr){
        var res=arr.filter(function(item,index,array){
            returun array.indexof(item)===index;
            //判断元素在数组中第一次出现位置是不是当前位置
        })
        return res;
    }
     
    el:找出数组中的最大值 reduce
    [6, 4, 1, 8, 2, 11, 3].reduce((pre,nex)=>{
        return Math.max(pre,nex);
    })
     
    el:打乱数组的方法 sort
    [1,2,3,4].sort(()=>{
        return 0.5 - Math.random();
    })
     
     
     
     
     
     
  • 相关阅读:
    document.body.clientHeight 和 document.documentElement.clientHeight 的区别
    Javascript操作div及其内含对象示例
    面向对象分析设计的经验原则
    翻页控件示例代码
    C#的6种常用集合类示例
    UML基础知识
    重温OSI和TCP/IP网络分层
    设计模式总结
    活用设计模式
    GridView当数据源为空时仍显示表头
  • 原文地址:https://www.cnblogs.com/sanqianjin/p/9141181.html
Copyright © 2011-2022 走看看