функция факториала возвращает неопределенное - PullRequest
0 голосов
/ 29 октября 2018

Это простой код для факториала, я написал функцию, и она перебирает правильные выходные данные, но в конце возвращает неопределенное значение. Я не знаю почему.

function factorial(n){
    let value=1; 
    for(let i=1;i<=n;i++) {
        value = i*value; 
        console.log(value); 
    }  
}

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Вы можете найти факториал с помощью рекурсии. Вот реализация.

    function factorial(x){
         if(x == 0)  //Exit condition
             return 1;
         return x * factorial(x-1);  //5*4*3*2*1
    }
    
    console.log(factorial(5));
0 голосов
/ 29 октября 2018

Это хорошая реализация:

const factorial = n => n > 1 ? n * factorial(--n) : 1;

А ваша функция не имеет return, поэтому она возвращает undefined;

0 голосов
/ 29 октября 2018

Поскольку вы ничего не возвращаете из функции, поэтому undefined является результатом ее работы. Вам необходимо вернуть значение явно:

function factorial(n){
  let value=1;

  for(let i=1;i<=n;i++) {
    value = i*value; 
    console.log(value); 
  } 

  return value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...