码迷,mamicode.com
首页 > 其他好文 > 详细

高阶函数

时间:2019-01-12 18:32:29      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:function   关注   说明   app   ber   处理   index   执行   lte   

高阶函数
  什么是高阶函数:
    简单的说,接收函数作为参数的函数是高阶函数
    高阶函数也可以返回值可以是函数
为什么要用高阶函数:
  只是让我们知道有这个概念:参数和返回值都可以是函数,日常使用时不用去关注是不是高阶函数,只要熟悉几个函数就可以

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

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

 

高阶函数

标签:function   关注   说明   app   ber   处理   index   执行   lte   

原文地址:https://www.cnblogs.com/xuanjian-91/p/10260514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!