3

こんにちは、以下の方法で数値の配列の積を計算しようとしています。

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

しかし、それは私を返しますNaN

これを行う他の方法はありますか?

4

2 に答える 2

4

理想は使用することArray.reduceです:

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

実際に見てください

Array.reduceバージョン 9 より前の IE では使用できませんが、見つけるべき実装がたくさんあるはずです (たとえば、これ)。

于 2012-04-25T11:40:33.133 に答える
1

あなたが探しているのは、文字列を式として評価することです。

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

ただし、いつものように、使用してevalいる場合は、何か間違ったことをしているのかどうかを真剣に自問する必要があります。

代わりにループすることを検討してください。

var result = 1;
for (var i = 0; i < str.length; i++) result *= str[i];
alert(result);
于 2012-04-25T11:41:32.350 に答える