本文是笔者在看廖雪峰老师JavaScript教程时的个人总结
高阶函数
           一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数
         1.高阶函数之map:
                    此时我们有一个数组和一个接受一个参数并返回一个数的函数。我们需要把这个数组的每一个值在这个函数上走一遍,从而得到一个新数组。此时就需要map了
                    var a = [1,2,3,4,5,6];
var b = []
var fun = function(x)
{
    return x * x;
}
b = a.map(fun)
alert(b)  //1 4 9 16 25 36
 
2.高阶函数之reduce:
          此时我们有一个数组和一个接受两个参数并返回一个数的函数。我们需要把这个数组的每两个值在这个函数上走一遍变成一个值,然后再让这个值继续和下一个值走这个函数,最后从而得到一个值。此时就需要map了。 ilter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。可见用filter()这个高阶函数,关键在于正确实现一个“筛选”函数
          var a = [1,2,3,4,5]
var b =[]
var fun = function(x,y)
{
    return x+y;
}
b = a.reduce(fun)
alert(b) // 15
 
          3.高阶函数之filter:
                    此时我们有一个数组,这个数组里面有我们想要的也有我们不想要的,怎么办,我们可以下一个函数,让这些值在这个函数里面走一遍,想要的留下,不想要的去掉,返回一个只有理想数值的数组。此时需要filter
                    var a = [1,2,3,4,5]
var b =[]
var fun = function(x)
{
    return x%2 !== 0;
}
b = a.filter(fun)
alert(b)
 
4.高阶函数之sort:
            这个就是之前数组里面提到的排序函数,这个也是一个高级函数,默认是从低到高。 通常规定,对于两个元素xy,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。我们可以传入一个函数,让sort从高到低排序
          var a = [3,2,5,1,4]
var fun = function(x,y)
{
    if(x<y)
        return 1
    if(x==y)
        return 0
    if(x>y)
        return -1
    //如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1
}
a.sort(fun)
alert(a)  //5,4,3,2,1
Arraysort()方法默认把所有元素先转换为String再排序 2 10排序会认为2比10大...
所以可以传入一个函数修改一下
var arr = [10, 20, 1, 2];

arr.sort(function (x, y) {

    if (x < y) {

        return -1;

    }

    if (x > y) {

        return 1;

    }

    return 0;

});
           sort()方法会直接对Array进行修改,它返回的结果仍是当前Array
 

JavaScript高阶函数 map reduce filter sort的更多相关文章

  1. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  2. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  3. JavaScript高阶函数map/reduce、filter和sort

    map() 举例说明,比如我们有一个函数f(x)=x²,要把这个函数作用在一个数组[1,2,3,4,5,6,7,8,9]上. 由于map()方法定义在JavaScript的Array中,我们调用Arr ...

  4. 函数式编程 高阶函数 map&reduce filter sorted

    函数式编程 纯函数:没有变量的函数 对于纯函数而言:只要输入确定,那么输出就是确定的.纯函数是没有副作用的. 函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数 高阶函数:一个函数的 ...

  5. Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数

    高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function ab ...

  6. Python高阶函数_map/reduce/filter函数

    本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过 ...

  7. 辅助函数和高阶函数 map、filter、reduce

    辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测):    push()    pop()    shift()    unshift()  ...

  8. python之高阶函数map/reduce

    L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...

  9. python笔记十四(高阶函数——map/reduce、filter、sorted)

    一.map/reduce 1.map() map(f,iterable),将一个iterable对象一次作用于函数f,并返回一个迭代器. >>> def f(x): #定义一个函数 ...

随机推荐

  1. Attribute和自定义Property

    property(属性) attribute(特性) property和attribute的同步 id href value class/className 旧IE的趣事 attribute作为DOM ...

  2. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  3. 新手入门 keil MDK5 建立STM32工程

    keil uvison 是用来开发 单片机的,Keil mdk 是用来开发 ARM 的. 芯片型号是:STM32F103RB6 1,新建工程 配置属性 晶振为8M 根据实际晶振选择 生成 HEX 文件 ...

  4. sum data

    $('.group_header').each(function(){ ; $(this).nextUntil('tr.group_header').find('.num').each(functio ...

  5. DLL库

    6.阿里云上传.下载:Aliyun.OSS.dll https://help.aliyun.com/ 5.SQLite数据库操作:SQLite.Interop.dll.SQLite.Designer. ...

  6. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  7. android源码中,在系统多媒体数据库中增加一个字段

    由于项目需求,在系统多媒体管理数据库里的存储图像文件的表中需要新增加一个字段,源码在:项目\packages\providers\MediaProvider\MediaProvider.java下,在 ...

  8. PV、UPV、UV简介

    1.PV: PV的全称是Pageview,中文的意思是:综合浏览量. 浏览量.页面的浏览次数,衡量网站用户访问的网页数量,用户每打开/刷新一次页面就记录一次,多 次打开会累计. 2.UPV: UPV的 ...

  9. java cef3 禁止右键菜单项

    如下图所示,在context_menu_handler.cpp中ContextMenuHandler::OnBeforeContextMenu添加以下代码即可: ){ model->Clear( ...

  10. 关于小黄车(ofo共享单车)使用的问题

    小黄车即ofo共享单车,号称是全球创立最早.成长最快.规模最大的无桩共享单车创业公司,缔造了"共享单车"概念,致力于解决城市出行问题.它的出现给大家带来了方便,作为一个商业运行的公 ...