为什么 Reduce Helper 返回 NaN?

Why Reduce Helper is returning NaN?

我在 this website 上尝试了这段代码,它工作正常并按预期返回了 60,但是当我尝试在 HTML 网页上 运行 它时,首先它 returns 10 和其他 2 个值将是 NaN,我不明白为什么会发生此错误。 我会很感激你的解决方案。

var numbers = [ 10, 20, 30 ] ;

numbers.reduce(function(sum , number){
     return console.log( sum + number);
} , 0);

你不应该 return console.log。这总是 returns undefined:

const numbers = [ 10, 20, 30 ] ;

numbers.reduce(function(sum , number) {
  console.log(sum + number);

  return sum + number;
} , 0);

在 reduce 函数中,您正在 returning console.log()console.log() 没有 return 任何东西 (undefined),所以你的总和也变得未定义。 undefined + 10 会给你 NaN 错误。

如果您想在控制台中查看内容, 的功能会按预期工作,您将需要 1) return 数字和 2) 包含一个console.log 在你的代码中。换句话说,像

var numbers = [ 10, 20, 30 ] ;

numbers.reduce(function(sum , number){
     console.log( sum + number);
     return sum + number;
} , 0);