Умножить все элементы в массиве

Я не мог найти здесь пример того, что я действительно ищу. Я хотел бы умножить все элементы массива, поэтому, если массив содержит [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]);

Может ли кто-нибудь объяснить, что мне здесь не хватает? Заранее спасибо!

Здесь сэр, вы забыли добавить переменную массива! Функция выполняет функцию переменной, поэтому:

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

Ответы

Ответ 1

Причина уже известна. Вот альтернатива - использование Array.reduce для вашего метода:

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

Смотрите также

Ответ 2

Вы должны иметь () при вызове функции.

Подобно multiply([1,2,3])

Демо здесь

Ответ 3

Вы не вызываете умножение как функцию:

multiply([1,2,3]);

Ответ 4

Если вы хотите умножить несколько последовательных чисел, таких как 1,2,3, то примените этот код и введите число в консоли (обр)

let array = [];

function factorisation(arr) {
    for (let j = arr; j > 0; j--) {
        array.push(j);
    }
    return multiply();
}

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

console.log(factorisation(5));
//5*4*3*2*1 = 120