将数组中的所有元素相乘

新手上路,请多包涵

我在这里找不到我真正想要的例子。我想将所有数组元素相乘,因此如果数组包含 [1,2,3],则总和将为 1*2*3=6;到目前为止,我已经得到这段代码,但它返回未定义。

 function multiply (array) {
    var sum=1;
    for (var i=0; i<array.length; i++) {
        sum = sum * array[i];
    }
    return sum;
}
console.log(multiply[1,2,3]);

谁能解释一下,我在这里错过了什么?提前致谢!

原文由 Joh Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

原因已经知道。这是一个替代方案 - 使用 Array.reduce 作为你的方法:

 console.log( [1, 2, 3].reduce( (a, b) => a * b ) );
console.log( Array.from( {length: 20} )
  .map( (v, i) => i + 1 )
  .reduce( (a,b) => a * b )
  .toLocaleString());

// for empty arrays, use some initial value
const arr = [];
if (arr.reduce( (a, b) => a * b, -1 ) === -1) {
  console.error(`The given array ${arr} is empty`);
}

也可以看看

原文由 KooiInc 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题