首页 > 解决方案 > 检查递归js中的数字是否不是整数

问题描述

我有一个递归函数,它计算给定数字的阶乘。

function findFactorial(num) {
  if (num < 1 || !num.isInteger) {
    return "error";
  } else {
    return num * findFactorial(num - 1);
  }
}

console.log(findFactorial(7));

我想检查数字是否小于 1 OR 不是整数 - 并为它返回“错误”。我在上面尝试的代码不起作用,每次调用函数时都会给我“错误”。

标签: javascript

解决方案


num.isIntegerjs中没有这个功能。我们有Number.isInteger(val).

需要进行一些代码更改。

  • 当数字不是整数或负数时,我们只需要返回error.
  • 当一个数字达到 1 时,我们需要返回 1 本身来获取阶乘值。

请参阅下面的代码。

function findFactorial(num) {
  if (!Number.isInteger(num) || num < 0) {
    return "error";
  } else if (num <= 1) {
    return 1;
  }
  else {
    return num * findFactorial(num - 1);
  }
}

console.log(findFactorial(7));
console.log(findFactorial(-5));
console.log(findFactorial("six"));


推荐阅读