• 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]
    

      

     

  • 相关阅读:
    题解CF566D Restructuring Company
    题解CF986F Oppa Funcan Style Remastered
    题解P2371 [国家集训队]墨墨的等式
    题解 CF1203D2 Remove the Substring (hard version)
    题解 CF1202D Print a 1337-string...
    ubuntu apt-get install php
    jwt refresh token
    读过的laravel文章
    delete all untracked files
    自定义UserProvider,更改验证方法
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/10756280.html
Copyright © 2020-2023  润新知