程序员

js 函数式编程(2)

2018-12-31  本文已影响18人  zidea

简单的数据结构、高阶函数和泛化再使用这些一切一起的 javascript 特性都是适合函数式编程。

在函数式编程中代码表述性会更清晰,我们下面代码风格进行对比一种是 Imperative 后面是函数式。当然是后者更清晰,利于我们阅读代码,表示对数组每一个元素使用 print 方法。而我们更熟悉的 imperative 确实需要花一定时间来读懂代码含义。

我们先看一看 map 这个函数,输入时集合同样输出也是集合,作为参数参入 map 的函数会作用,也就是操作集合每一个元素。

如果学习过 Rxjs 一定对这张图不会陌生,map 接受一个集合,然后操作集合每一个元素,可能是转换另一种元素,或是数据结构,所有操作后的元素组成我们输出的集合。 想一想我们函数就是输入一个变量输出一个变量,他们的值是一一对应的。

我们再看一个函数式编程的常用的 reduce 函数 ,他用途就是从集合的第 N 位遍历到集合第 1 位的。并且会把每次计算的结果作为参数再次传递一个函数。

下图帮助您更好理解 reduce 这个函数,我们集合中的元素,一层一层地在原有基础上(也就是上一次的结果值)进行包裹等到最终的结果。

上一篇 下一篇

猜你喜欢

热点阅读