2013-10-04 10 views
11

ここで私が実際に探している例は見つかりませんでした。 すべての配列要素を掛けたいので、配列に[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]); 

私はここで何が分かりませんか?前もって感謝します!

ここで、あなたは配列変数を追加するのを忘れました! 機能はそう、変数をspects:

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

はあなたの最後の行はこのようにconsole.logすべきではない(乗算([1,2,3])); – MonkeyCoder

答えて

8

あなたは関数を呼び出すとき()を持っている必要があります。

here

+0

神様、私は分散しています!大変感謝します。 –

+0

@JohSmith、私は助けることができてうれしい。多くの人にコードを見てもらえればいつでもいいです:) – Sergio

1

デモ

multiply([1,2,3])ようにあなたは関数として、多重呼び出していない:

multiply([1,2,3]); 
28

原因は、既に知られています。ここで代替だ - あなたの方法のためのArray.reduceを使用して:

[1,2,3].reduce(function(a,b){return a*b;}); //=> 6 

See also

+0

Array.reduceのブラウザサポートを確認することを忘れないでください:http://kangax.github.io/compat-table/es5/#Array.prototype.reduceそうでなければ、lodash/underscoreの_.reduceは素晴らしい代替手段です。 –

+0

MDNリンクにはpolyfillがあります(回答の '参照'リンク) – KooiInc

+4

ES6: '[1,2,3] .reduce (a、b)=> a * b); ' –

関連する問題