代码之家  ›  专栏  ›  技术社区  ›  bax

Javascript reduce不断返回未定义的

  •  2
  • bax  · 技术社区  · 6 年前

    我想找出一个问题,我需要找到数组中所有数字的乘积。

    就我的一生而言,我无法理解为什么这会一直返回未定义状态。

    我想知道为什么我的代码不起作用。非常感谢。

    function mutliplyAllElements(arr) {
    
      arr.reduce(function(x, y) {
        return x * y;
      });
    }
    
    mutliplyAllElements([2, 3, 100]);  // 600
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Eddie    6 年前

    由于函数 mutliplyAllElements 不返回任何内容。你必须 return 函数中的值。

    function mutliplyAllElements(arr) {
      let val = arr.reduce(function(x, y) {
        return x * y;
      });
      return val;
    }
    
    console.log(mutliplyAllElements([2, 3, 100]));

    或者您可以将其缩短为:

    function mutliplyAllElements(arr) {
      return arr.reduce((x, y) => x * y);
    }
    
    console.log( mutliplyAllElements([2, 3, 100]) );