十日谈 :javascript高阶函数
欢迎阅读我的Vue学习日记
函数式编程
编程范式:命令式编程 / 声明式编程
编程范式:面向对象编程 / 函数式编程
filter
filter参数中的回调函数必须返回一个bool值
true:当返回true时,函数内部会自动将这次回调的n加入到新的数组中
false:当返回false时,函数内部会过滤掉这次的n
map
创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
reduce
对数组中内容进行汇总。
reduce(第一个参数(函数形式),第二个参数(函数形式))
第一个参数可以定义一个函数,但必须有一个返回值,这个返回值将加上第二个函数的返回值,然后在进入第一个函数,一直到数组遍历完毕。
三个高阶函数案例演示
给定数组[10,20,111,222,444,40,50]
第一步,取小于100的数
第二步,将他们乘2
第三步,求和
一行代码搞定:
const nums = [10,20,111,222,444,40,50]
let total = nums.filter(function (n) {
return n<100
}).map(function (n) {
return n*2
}).reduce(function (prevValue,n) {
return prevValue + n
},0)
箭头函数更简洁的写法
const nums = [10,20,111,222,444,40,50]
let total2 = nums.filter(n => n<100).map(n => n*2).reduce((pre,n) => pre + n)