javascript - 检查递归js中的数字是否不是整数
问题描述
我有一个递归函数,它计算给定数字的阶乘。
function findFactorial(num) {
if (num < 1 || !num.isInteger) {
return "error";
} else {
return num * findFactorial(num - 1);
}
}
console.log(findFactorial(7));
我想检查数字是否小于 1 OR 不是整数 - 并为它返回“错误”。我在上面尝试的代码不起作用,每次调用函数时都会给我“错误”。
解决方案
num.isInteger
js中没有这个功能。我们有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"));
推荐阅读
- control-m - 当工作没有被特定时间触发时,Control-m 电子邮件警报
- active-directory-group - 如果我只有使用 c# 的 objectguid,如何获取对象详细信息?
- c - 在结构中为我的双指针分配内存时遇到问题
- android - 使用数据绑定和 MVVM 处理 onClick 事件
- angular - 在 Angular 6/7 中编译 HTML
- apache-kafka - Missing key when writing to topic
- php - Contactform 7 - wpcf7_admin_after_additional_settings 操作在类中不起作用
- javascript - 使用 Angular 和 php 选择文件、裁剪和上传
- regex - 用于排除以连续前导零开头或仅为字母的字符串的正则表达式
- database - 关于构建数据库表的最佳方法的建议