嗨,我正在尝试以下方法来计算数字数组的乘积。
var str = [1,2,3];
alert(str.join('*') * 1);
但它返回我NaN
。
有没有其他方法可以做到这一点。
嗨,我正在尝试以下方法来计算数字数组的乘积。
var str = [1,2,3];
alert(str.join('*') * 1);
但它返回我NaN
。
有没有其他方法可以做到这一点。
理想的情况是使用Array.reduce
:
alert(str.reduce(function (acc, curr) { return acc * curr; }, 1));
Array.reduce
在 IE 9 之前的版本中不可用,但应该有很多实现可以找到(例如这个)。
您正在寻找的是将字符串评估为表达式:
alert(eval(str.join('*')));
但是,与往常一样,如果您正在使用,eval
您应该认真问自己是否做错了什么。
考虑只循环:
var result = 1;
for (var i = 0; i < str.length; i++) result *= str[i];
alert(result);