高阶函数
Posted xuanjian-91
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高阶函数相关的知识,希望对你有一定的参考价值。
高阶函数
什么是高阶函数:
简单的说,接收函数作为参数的函数是高阶函数
高阶函数也可以返回值可以是函数
为什么要用高阶函数:
只是让我们知道有这个概念:参数和返回值都可以是函数,日常使用时不用去关注是不是高阶函数,只要熟悉几个函数就可以
map
接收函数用来处理数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]
reduce
Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
filter
接收函数用来处理数组
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]
利用filter,可以巧妙地去除Array的重复元素
var r,
arr = [‘apple‘, ‘strawberry‘, ‘banana‘, ‘pear‘, ‘apple‘, ‘orange‘, ‘orange‘, ‘strawberry‘];
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;//indexof()总是取出现的第一个索引,如果第一个索引和elment当前索引相等,说明elment是第一次出现,如果是第二次出现,那么elemet第一次出现的索引和element当前索引是不想等的
});
函数作为返回值
返回值是函数调用等于直接执行函数
返回值是函数,保留相关参数和变量
闭包:内部函数保留外部函数的相关参数和变量,闭包保存算法
返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
以上是关于高阶函数的主要内容,如果未能解决你的问题,请参考以下文章