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

使用函数处理数组

先看一个求平均值的例子,标准差的计算公式是:
Javascript学习笔记——8.8 函数式编程_第1张图片
标准差公式
  • 用循环的写法
var data = [1,3,7,11,22,55]
var total = 0
for(var i=0;i
  • 使用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 函数式编程)