我可能懂了为什么 Array.prototype.reduce() 用 reduce 这个单词

65 阅读1分钟

我第一次知道 JS 中 reduce 这个方法的时候,我就纳闷,这个方法也没有实现减少什么,为什么要用 reduce 这个单词?(当时我只知道 reduce 这个单词是减少的意思)

当时我猜测应该是这个单词还有别的意思,但我查字典后并没有找到能符合 reduce() 这个方法的意思。

直到今天看到一篇博客讲 Reudx 里的 reducer 为什么叫 reducer,忽然发现我可能懂了一点为什么是 reduce 这个单词。

博客里说官方文档的翻译应该是:

之所以称作 reducer 是因为它将被传递给 Array.prototype.reduce(reducer, ?initialValue) 方法。

还讲了 reduce:

为了进一步加深理解,我们再了解一下 reduce 是什么东西,这个名词其实是函数式编程当中的一个术语,在更多的情况下,reduce 操作被称为 Fold 折叠

然后我去维基百科查了下 Fold

函数式编程中,折叠(fold),也称为归约(reduce)、积累(accumulate)、聚集(aggregate)、压缩(compress)或注入(inject),指称一组高阶函数,它们分析递归数据结构并通过使用给定组合运算,将递归的处理它的构成部件、建造一个返回值的结果重组起来。

以后有了新的理解,再补充...