学习函数式编程,必须掌握很多术语,否则根本看不懂文档。本文介绍两个基本术语:reduce和transduce。它们非常重要,也非常有用。一、reduce 的用法reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。var arr = [1, 2, 3, 4];
var sum = (a, b) => a + b;
arr.reduce(sum, 0) // 10上面代码中,reduce对数组arr的每个成员执行sum函数。sum的参数a是累积变量,参数b是当前的数组成员。每次执行时,b会加到a,最后输出a。累积变量必须有一个初始值,上例是reduce函数的第二个参数0。如果省略该参数,那么初始值默认是数组的第一个成员。var arr = [1, 2, 3, 4];
var sum = function (a, b) {
console.log(a, b);
return a + b;
};
arr.reduce(sum) // => 10
// 1 2
// 3 3
// 6 4上面代码中,reduce方法省略了初始值。通过sum函数里面的打印语句,可以看到累积变量每一次的变化。总之,reduce方法提供了一种遍历手段,对数组所有成员进行"累积"处理。二、map 是 reduce 的特例累积变量的初始值也可以是一个数组。var arr = [1, 2
...
继续阅读
(84)