2016-02-15 4 views
-1

Цель состоит в том, чтобы размножить все элементы от 1 до n. Я могу получить массив из этих чисел, но нужно умножить их вместе:Как я могу умножить элементы в этом массиве?

function factorialize(num) { 
 
    var array = []; 
 
    for (var i = 1; i <= num; i++) { 
 
    array.push(i); 
 
    } 
 
    return array; 
 
} 
 

 
factorialize(5);

Как я могу вернуть продукт моего массива?

+0

Вытащите каждый элемент и умножить его на произведение всех предыдущих элементов. Верните окончательный результат. – csmckelvey

ответ

-1

В этой ситуации я предполагаю, что мы сможем эффективно использовать метод .reduce, чтобы быстро получить произведение массива.

function factorialize(num) { 
 
    var array = []; 
 
    for (var i = 1; i <= num; i++) { 
 
     array.push(i); 
 
    } 
 
    return array.reduce(function (a, b) { 
 
     return a * b; 
 
    }); 
 
} 
 

 
factorialize(5);

Смотреть это JSFiddle: https://jsfiddle.net/sak6hkab/

0

Вы путаете вопрос путем создания массива чисел до умножения. Этот массив здесь не имеет реальной цели. Это простая рекурсия, но вы должны быть осторожны (независимо от того, какого решения вы используете), что вы делаете, если число передается ноль или меньше:

function factorialize(num) { 
 
    if (num <= 1) { 
 
    return 1; 
 
    } else { 
 
    return (num * factorialize(num - 1)); 
 
    } 
 
} 
 

 
factorialize(5);

Смежные вопросы