37

ここで私が本当に探している例が見つかりませんでした。すべての配列要素を乗算したいので、配列に [1,2,3] が含まれている場合、合計は 1*2*3=6 になります。これまでのところ、このコードを取得しましたが、undefined が返されます。

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]);

ここで何が欠けているのか、誰か説明してもらえますか? 前もって感謝します!

4

7 に答える 7

66

原因はすでにわかっています。別の方法があります-メソッドに使用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`);
}

こちらもご覧ください

于 2013-10-04T06:56:50.517 に答える
9

()関数を呼び出すときに必要です。

お気に入りmultiply([1,2,3])

デモはこちら

于 2013-10-04T06:53:17.283 に答える
2

関数として乗算を呼び出していません。

multiply([1,2,3]);
于 2013-10-04T06:54:03.980 に答える