
50
|
第
3
章
map
和
reduce
是任何函数式程序员的主要武器,对于
JavaScript
也不例外。如果你希望
成为一名熟练的
JavaScript
工程师,那么最好掌握这些函数。从其他数据源创建一个
新的数据集的能力是程序员的必备技能,并且对于任何编程范式都是非常有用的。
高阶函数
高阶函数的使用对于函数式编程也是必不可少的。前文已经提到过高阶函数,本章也
用到不少。高阶函数是可以操作其他函数的函数。它们可以将函数当作参数传递,也
可以返回一个函数,或者二者兼而有之。
第一类高阶函数是将其他函数当作参数传递的函数。
Array.map
、
Array.filter
和
Array.reduce
都可以将函数当作参数进行传递,所以它们都是高阶函数。
注
3
接下来看看如何实现一个高阶函数。在下列示例中,我们将创建一个名为
invokeIf
的回调函数,当条件经过测试为
true
时将会调用一个回调函数;当条件经过测试为
false
时,将会调用另外一个回调函数:
const invokeIf = (condition, fnTrue, fnFalse) =>
(condition) ? fnTrue() : fnFalse()
const showWelcome = () =>
console.log("Welcome!!!")
const showUnauthorized = () =>
console.log("Unauthorized!!!")
invokeIf(true, showWelcome, showUnauthorized) ...