需要解释Array.prototype.reduce()语法[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我在我的一个数组上使用Array.prototype.reduce()函数,该数组包含多个具有相同值的条目,以生成一个只包含每个值的一个实例的新数组(唯一值)。我正确使用该功能,它产生了正确的结果。尽管如此,我还是不了解这段代码。我想问的是,是否有人可以向我解释这段代码是如何工作的。我想了解这一点,以进一步了解Javascript。这是整个代码:

var uniqueNames = names.reduce(function (accumulator, currentValue) {
  if(accumulator.indexOf(currentValue) === -1) {
    accumulator.push(currentValue);
  }
  return accumulator;
}, []);

除了代码的最后部分,我理解这里发生的一切。我所指的那部分是

}, []);

这里发生了什么?我知道方括号表示一个数组,我猜这段代码与将累加器转换成数组有关?我假设如果这段代码不在那里,'accumulator'将是一个值而不是一个数组。但我无法完全掌握正在发生的事情。我想用自己的话来解释这个问题。有人可以帮我理解代码在这里做了什么吗?

javascript
1个回答
2
投票

正如您所见,here,Array.reduce()将设置累加器的初始值作为可选参数。这意味着您的累加器变量在第一次迭代之前初始化为emtpy数组。

© www.soinside.com 2019 - 2024. All rights reserved.