常用高阶函数

什么是高阶函数:通俗理解就是一个函数接收另一个函数作为参数,这种函数就称之为高阶函数。

1.map 一次对数组的每一项做相同的处理,返回一个新数组

function pow(x) {
    return x * x;
}

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]
console.log(results);

2.reduce 这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算

var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
    return x + y;
}); // 25

3.filter 用于把Array的某些元素过滤掉,然后返回剩下的元素,返回新数组

把一个Array中的空字符串删掉,可以这么写:

var arr = [‘A‘, ‘‘, ‘B‘, null, undefined, ‘C‘, ‘  ‘];
var r = arr.filter(function (s) {
    return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
});
r; // [‘A‘, ‘B‘, ‘C‘]

可以巧妙地去除Array的重复元素:

var arr = [‘apple‘, ‘strawberry‘, ‘banana‘, ‘pear‘, ‘apple‘, ‘orange‘, ‘orange‘, ‘strawberry‘];

 var r = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
 });

console.log(r.toString());//apple,strawberry,banana,pear,orange

4.sort排序方法 字符串根据ASCII码进行排序  Arraysort()方法默认把所有元素先转换为String再排序

var arr = [10, 20, 1, 2];

  arr.sort(function (x, y) {
    return x - y;   //从小到大排序;(y-x)从大到小排序
  });
  console.log(arr); // [1, 2, 10, 20]

5.every 方法可以判断数组的所有元素是否满足测试条件,返回true或false

var arr = [‘Apple‘, ‘pear‘, ‘orange‘];
  console.log(arr.every(function (s) {
  return s.length > 0;
})); // true, 因为每个元素都满足s.length>0

console.log(arr.every(function (s) {
  return s.toLowerCase() === s;
})); // false, 因为不是每个元素都全部是小写

6.find 方法用于查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined

ar arr = [‘Apple‘, ‘pear‘, ‘orange‘];
  console.log(arr.find(function (s) {
  return s.toLowerCase() === s;
})); // ‘pear‘, 因为pear全部是小写

console.log(arr.find(function (s) {
  return s.toUpperCase() === s;
})); // undefined, 因为没有全部是大写的元素

7.findIndex findIndex()find()类似,也是查找符合条件的第一个元素,不同之处在于findIndex()会返回这个元素的索引,如果没有找到,返回-1

var arr = [‘Apple‘, ‘pear‘, ‘orange‘];
  console.log(arr.findIndex(function (s) {
  return s.toLowerCase() === s;
})); // 1, 因为‘pear‘的索引是1

console.log(arr.findIndex(function (s) {
  return s.toUpperCase() === s;
})); // -1

8.forEach forEach()map()类似,它也把每个元素依次作用于传入的函数,但不会返回新的数组。forEach()常用于遍历数组,因此,传入的函数不需要返回值

  

原文地址:https://www.cnblogs.com/qlongbg/p/11577667.html

时间: 2024-08-03 17:25:04

常用高阶函数的相关文章

python内置常用高阶函数(列出了5个常用的)

原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://blog.csdn.net/cv_you/article/details/70880405 python内置常用高阶函数: 一.函数式编程 •函数本身可以赋值给变量,赋值后变量为函数: •允许将函数本身作为参数传入另一个函数: •允许返回一个函数. 1.map()函数 是 Python 内置的高阶函数,

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

Kotlin的高阶函数和常用高阶函数 文章来源:企鹅号 - Android先生 高阶函数的定义 将函数当做参数或者是返回值的函数 什么是高阶函数 可以看看我们常用的 函数: 首先我们可以知道, 是 的扩展函数,然后参数是 ,但是 不再像和我们以前Java那样传递的是一个对象,这时传递的是一个函数.这个函数的入参为 ,返回值为 .所以 也是一个高阶函数,因为它将函数当做参数进行传递了.我们尝试着去调用一下 函数: 调用的时候,我们将 函数传递给了 函数,这里采用的是函数引用.就上诉代码,我们还可以

Scala入门到精通——第十三节 高阶函数

本节主要内容 高阶函数简介 Scala中的常用高阶函数 SAM转换 函数柯里化 偏函数 1. 高阶函数简介 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返回值是函数的函数.这两种在本教程的第五节 函数与闭包中已经有所涉及,这里简单地回顾一下: (1)函数参数 //函数参数,即传入另一个函数的参数是函数 //((Int)=>String)=>String scala> def convertIntToString(f:(Int)=>String

二、Python开发---13、高阶函数与内置函数

常用高阶函数 #map list01 = [1,3,5,7,9] new_list01=map(lambda x:x*2,list01) print(list(new_list01)) #输出为[2, 6, 10, 14, 18] 将map对象转换为list list02 = [2,4,6,8,10] new_list02 = map(lambda x,y:x*y,list01,list02) print(new_list02) #<map object at 0x0000000001F0A51

js里常用函数之高阶函数

高阶函数:将函数作为参数或者返回值的函数.将函数作为参数的用法通常称作回调函数,函数参数通常会在主函数被执行之后被高阶函数调用. 高阶函数的使用实例.可以把有相似操作的函数用一个高阶函数来重构,精简代码 如有一个比较函数:compareNumbers 1 function compareNumbers(x, y){ 2 3 if(x > y){ 4 5 return -1; 6 7 }else{ 8 9 return 1; 10 11 } 12 13 return 0; 14 15 } 16 1

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个

Python高阶函数-闭包

高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 在这里我们首先回忆一下python代码运行的时候遇到函数是怎么做的. 从python解释器开始执行之后,就在内存中开辟了一个空间 每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存,表示知道这个函数的存在了,至于函数内部的变量和逻辑解释器根本不关心. 等执行到函数调用的时候,python解释器会再开辟一块内存来存储这个函数里的内容,这个时候,才关注函数里面有哪

【函数】02、匿名函数、生成器、高阶函数

一.匿名函数 1.定义 语法格式: lambda args:expression args:以逗号分隔的参数列表 expression:用到args中各参数的表达式 lambda定义的代码必须是合法的表达式,不能出现多条件语句(可使用if的三元表达式)和非表达式,如for和while等 lambda的首要用途是指定短小的回调函数 lambda将返回一个函数而不是将函数赋值给某变量名 In [77]: lambda x: x+1 Out[77]: <function __main__.<lamb

Haskell高阶函数

Haskell functions can take functions as parameters and return functions as return values. A function that does either of those is called a higher order function. Higher order functions aren't just a part of the Haskell experience, they pretty much ar