在这段代码中0做了什么?

时间:2018-04-12 17:27:52

标签: javascript

我理解所有代码,直到它达到零?为什么需要这里?

const sum = (function() {
  "use strict";
  return function sum(...args) {
    return args.reduce((a, b) => a + b, 0);
  };
})();

1 个答案:

答案 0 :(得分:3)

reduce()的第二个参数指定初始值。它几乎可以是任何东西。

在您的示例中,它正在将其初始化为0。参数ab的命名很差。通常,参数更像resultvalue,您可以看到将value添加到result(已初始化为0)。



const sum = [1,2,3].reduce((result, value) => {
  console.log({ result, value });
  return result + value;
}, 0);

console.log('Sum', sum);