我通过"Eloquent JavaScript"手册学习JavaScript,现在我正在进行第5章"High-Order Functions"的练习。本章介绍的功能之一是" reduce "。我理解它是如何工作的,当我试图在MDN理解它的定义时,我的问题出现了。我不理解它给出的语法定义:
arr.reduce(callback[, initialValue])
此语法部分后面是名为Parameters的部分。这些是:
我不明白这些方括号和逗号是什么意思?因为当我立即看到方括号时,我想在数组中。为什么在定义中只有initialValue
而在其他参数中呢?为什么方括号和callback
之间没有空格?
因为下面有两个例子:
示例1
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
示例2
var total = [0, 1, 2, 3].reduce(function(a, b) {
return a + b;
});
// total == 6
并且我不知道它们如何符合定义。
由于
答案 0 :(得分:3)
API文档通常是使用[]
来表示可选参数的约定。但是,[]
不是使用语法的一部分。它只是文档惯例。
答案 1 :(得分:0)
正如在其他答案中已经解释的那样,“[]”内的参数是可选的。关于为什么“其他参数”(即previousValue等)不存在的问题,这些是callback
而不是reduce
的参数。因此,callback
会在reduce
的每次运行中收到这些参数。