javaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
- 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);
把Array的所有数字转为字符串:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
- reduce
Array的reduce()把一个函数作用在这个Array的[x1,x2,x3……]上,这个函数必须接收两个参数
reduce()把结果继续和序列的下一个元素做累积计算
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
- filter
Array的filter()也接收一个函数。和map()不同的是,
filter()把传入的函数依次作用于每个元素,然后根据返回值是
true还是
false`决定保留还是丢弃该元素。
- every()
判断数组的所有元素是否满足测试条件
- find
查找符合条件的第一个元素