高阶函数

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当前索引是不想等的
  });

函数作为返回值
  返回值是函数调用等于直接执行函数
  返回值是函数,保留相关参数和变量
  闭包:内部函数保留外部函数的相关参数和变量,闭包保存算法
    返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

 

































以上是关于高阶函数的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin的高阶函数和常用高阶函数

Kotlin小知识之高阶函数

高阶函数

高阶函数

高阶函数:声明实现(定义)与调用

函数高阶函数