Function, for, if(Задание)

Что не так? Только изучаю JS. Нужна помощь и объяснение.

function factorial(number){
  let result;
  if(number === 0)
    return 1;
  else if(number !== 0 && number > 0)
    for(let j = 0; j > number; j++)
      result =  j * number;
}
factorial(0);
factorial(1);
factorial(2);
factorial(4);
factorial(5);

Ответы (2 шт):

Автор решения: Igor

function factorial(number) {
  let result = 1;
  for (let j = 2; j <= number; j++)
    result *= j;
  return result;
}

console.log(factorial(0));
console.log(factorial(1));
console.log(factorial(2));
console.log(factorial(4));
console.log(factorial(5));

→ Ссылка
Автор решения: ТарасПрогер

Как насчет рекурсии?

function factorial(number) {
  if (number < 0) // если пользователь ввел отрицательное число
    return 0; // возвращаем ноль
  if (number === 0) // если пользователь ввел ноль,
    return 1; // возвращаем факториал от нуля - не удивляетесь, но это 1)
  else // Во всех остальных случаях
    return number * factorial(number - 1); // делаем рекурсию.
}
console.log(factorial(100));

→ Ссылка