美文网首页
Javascript学习笔记——8.8 函数式编程

Javascript学习笔记——8.8 函数式编程

作者: IFELSE | 来源:发表于2018-08-08 15:11 被阅读0次

使用函数处理数组

先看一个求平均值的例子,标准差的计算公式是: 标准差公式
  • 用循环的写法
var data = [1,3,7,11,22,55]
var total = 0
for(var i=0;i<data.length;i++)
    total = total+data[i]
var average = total/data.length
total = 0
for(i=0;i<data.length;i++){
    total = total+(data[i]-average)*(data[i]-average)
}
var stddev = Math.sqrt(total/(data.length-1))
console.log(stddev) //20.275601100830524
  • 使用map和reduce
var data = [1,3,7,11,22,55]
var add = function(a,b){return a+b}
var average = data.reduce(add)/data.length
var fun = function(x){return (x-average)*(x-average)}
var total = data.map(fun).reduce(add)
var stddev = Math.sqrt(total/(data.length-1))
console.log(stddev) //20.275601100830524

高阶函数

所谓高阶函数,就是操作函数的函数,它接受一个或多个函数作为参数,并返回一个新函数。

function not(f){
    return function(){
        var result = f.apply(this,arguments)
        return !result
    }
}
var even = function(x){
    return x%2===0
}
var odd = not(even)
var a = [1,3,4,7,9,12]
a.every(odd) //false
odd(5) //true

not是一个高阶函数,它的作用是生成一个新函数,新函数的计算结果总与传入函数的结果相反。

相关文章

  • Javascript学习笔记——8.8 函数式编程

    使用函数处理数组 用循环的写法 使用map和reduce 高阶函数 所谓高阶函数,就是操作函数的函数,它接受一个或...

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • part1整理

    函数式编程:JavaScript函数式编程指南 异步编程:异步编程 Promise源码 JavaScript基础知...

  • 函数式编程

    拉勾大前端的笔记,仅作为学习记录 课程介绍 为什么学习函数式编程,以及什么是函数编程 函数式编程的特性(纯函数,柯...

  • Scala 学习笔记

    Scala 学习笔记 1.函数式编程 函数式编程:函数式编程把函数当作一等公民,充分利用函数,支持函数的多种使用方...

  • Java 8函数式编程学习笔记

    Java 8函数式编程学习笔记 author:Gavin date:2018/11/09 什么是函数式编程 在思考...

  • 5.纯函数

    理解JavaScript纯函数 函数式编程中有一个非常重要的概念叫纯函数,JavaScript符合函数式编程的范式...

  • javascript函数式编程

    参考书籍:《javascript 函数式编程》 什么是函数式编程? 函数式编程通过函数将值转换为抽象单元,接着用于...

  • 【JavaScript】技术参考资料

    JS基础、高级、进阶 MDN·JavaScript 函数式编程 阮一峰老师的入门简介: 函数式编程初探、函数式编程...

网友评论

      本文标题:Javascript学习笔记——8.8 函数式编程

      本文链接:https://www.haomeiwen.com/subject/ehavyftx.html