是否可以使用这种方法实现数组乘法

Is it possible to achieve array multiplication using this approach

本文关键字:实现 数组 方法 可以使 是否      更新时间:2023-09-26

嗨,我正在尝试以下方法来计算数字数组的乘积。

 var str = [1,2,3];
 alert(str.join('*') * 1);​

但它让我NaN.

有没有其他方法可以做到这一点。

理想的做法是使用 Array.reduce

alert(str.reduce(function (acc, curr) { return acc * curr; }, 1));

看到它的实际效果

Array.reduce在版本 9 之前的 IE 中不可用,但应该有很多实现可以找到(例如这个)。

您要查找的是将字符串作为表达式进行评估:

alert(eval(str.join('*')));​

但是,与往常一样,如果您正在使用eval您应该认真地问自己是否做错了什么。

考虑只循环:

var result = 1;
for (var i = 0; i < str.length; i++) result *= str[i];
alert(result);