• js 高阶函数(map/reduce/filter/sort)


    1.map - 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(注:map不会对空数组进行检测,不会改变原始数组)

      语法:array.map(function(currentValue,index,arr), thisValue)

      参数解释:

          currentValue:必须。当前元素的值

          index:可选。当前元素的索引值

          arr:可选。当前元素属于的数组对象

          thisValue:可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。

      示例: 

    function pow(x) {
        return x * x;
    }
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var results = arr.map(pow);
    console.log(results); // [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    2.reduce- 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

      语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

      参数解释:

          total:必需。初始值, 或者计算结束后的返回值。

          currentValue:必需。当前元素

          currentIndex:可选。当前元素的索引

          arr:可选。当前元素所属的数组对象。

          initialValue:可选。传递给函数的初始值

      示例:

    var arr = [1, 3, 5, 7, 9];
    arr.reduce(function (x, y) {
        return x + y;
    }); // 25
    

     3.filter - 用于把Array的某些元素过滤掉,然后返回剩下的元素。filter()接收一个函数把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素.

     语法:array.filter(function(currentValue,index,arr), thisValue)

      参数解释:

          currentValue:必须。当前元素的值

          index:可选。当前元素的索引值

          arr:可选。当前元素属于的数组对象

          示例:

    //在一个Array中,删掉偶数,只保留奇数
    var arr = [1, 2, 4, 5, 6, 9, 10, 15];
    var r = arr.filter(function (x) {
        return x % 2 !== 0;
    });
    r; // [1, 5, 9, 15]
    

    4.sort -  用于Array排序。默认把所有元素先转换为String再排序,也可以接收一个比较函数来实现自定义的排序(注:sort()方法会直接对Array进行修改,它返回的结果仍是当前Array

      示例:

    //数字大小排序
    var arr = [10, 20, 1, 2];
    arr.sort(function (x, y) {
        if (x < y) {
            return -1;
        }
        if (x > y) {
            return 1;
        }
        return 0;
    });
    console.log(arr); // [1, 2, 10, 20]
    

      

     

  • 相关阅读:
    如何在mysql下建立数据库?并设置密码
    JVM(Java虚拟机)优化大全和案例实战
    Java性能优化之JVM GC(垃圾回收机制)
    百度地图坐标系和火星坐标系之间的互相转换
    Dealloc 在哪个线程执行
    iOS夯实:ARC时代的内存管理
    iOS夯实:内存管理
    iOS 7 使用导航控制器后有关根视图高度及位置的那些事
    Xcode6之找回之前的闪屏
    iOS 关于tableView cell的分割线的一些设置
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/10756280.html
Copyright © 2020-2023  润新知