zoukankan      html  css  js  c++  java
  • 关于数组的map、reduce、filter

    map:map()方法定义在Array中,传入自己的参数,就得到一个新的Array作为结果

    var aqiData = [
    ["北京", 90],
    ["上海", 50],
    ["福州", 10],
    ["广州", 50],
    ["成都", 90],
    ["西安", 100]
    ];

    function box(arr){
    return arr[1]+'分';
    }
    alert(aqiData.map(box));

     数组

    中的每一项都进行一次box(),得到的结果返回到原数组中。

    reduce

    同时应用一个函数针对数组的两个值(从左到右),以减至一个值。

    array.reduce(function,[ initialValue]);

     function : 函数执行在数组中每个值
     initialValue : 对象作为第一个参数回调的第一次调用使用


    var aqiData = [1,2,3,4,5];

    var total= aqiData.reduce(function(a,b){
    return a+b;
    });
    alert(typeof total);//number
    alert(total);//15

    var aqiData = [1,2,3,4,5];

    var total= aqiData.reduce(function(a,b){
    return a+b;
    },2);
    alert(typeof total);//number
    alert(total);//17

    filter:它用于把Array的某些元素按照一定的规则过滤掉,然后返回剩下的元素

    array1.filter(function[, thisArg])
    array1 数组对象 function调用的函数
    thisarg可选,可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。
    函数语法
    function callbackfn(value, index, array1)
    value数组元素的值 index数组元素的索引 array1包含该元素的数组对象
    eg:
    var arr = [5, "element", 10, "the", true];
    
    var result = arr.filter(
        function (value) {
            return (typeof value === 'string');
        }
    );
    
    document.write(result);
    //  element, the

    var aqiData = [
    ["北京", 90],
    ["上海", 50],
    ["福州", 10],
    ["广州", 50],
    ["成都", 90],
    ["西安", 100]
    ];
    var box = aqiData.filter(function(arr){
    return arr[1]>60;
    });
    alert(box);//["北京", 90] ["成都", 90] ["西安", 100]



     

  • 相关阅读:
    Android开发如何定制framework层服务
    Intellij IDEA通过SVN导入基于Springboot的maven项目以及对已有项目做更新
    intelliJ IDEA 怎么添加本地的idea web项目
    Android热修复之AndFix使用教程
    iOS友盟分享的使用总结
    iOS 传感器集锦
    IOS CALayer的属性和使用
    Swift使用Alamofire实现网络请求
    Android踩坑随笔Fragment中onActivityResult方法不被调用
    上周热点回顾(4.30-5.6)团队
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/5326553.html
Copyright © 2011-2022 走看看