js 函数式编程(3)
2019-01-15 本文已影响11人
zidea
我们现在看一看代码,这里我们引用一个轻量级的 javascript 库 underscore。这是个人非常喜欢一个 javascript 库,强烈推荐给大家,即使您不算采用函数式编程,了解和使用 underscore 也会给你带工作上轻松和。老外很多事例都是做pizza,今天给出的事例也不例外,我们准备一些蔬菜,然后就是切菜的工作。下图的方式一种传统的 Imperative 方式来编写方式。
我们再进一步,用循环数组方式来完成将买来的菜切丁呀准备呀。
现在是时候让我们函数式的 map 登场了,这里 map 接受两个参数,第一个参数就是我们数组,第二个参数是操作数组每个元素的函数。然后将操作后的每一个元素组成一个数组来输出。
看输出的结果不错,好我们已经成功地迈出第一步,将我们 Imperative 式的程序改造为函数式程序。
准备好了我们事先切好的菜,就可以下锅了,放入到 Pot 开煮,煮我们除了需要材料还需两个参数,时间长短和火候,这里用 temperature 和 duration 表示温度和时间。setStoveTemp 设置温度
在开始烹饪菜肴之前,我们需要将材料进行混合,addIngedientsToPot 我们需要将切好材料(数组)放入 pot 中,
这样依次在上一次结果基础进行操作我们就会想到 reduce ,reduce 接受三个参数,第一个就是输入的数组,第二个就是我们函数,这个函数接受两个参数