javascript - 为什么我的函数在应该返回一个数字时返回未定义?
问题描述
我试图解决一个网站上的挑战,我的代码表现得很奇怪......它返回未定义......有趣的是:如果我在返回语句之前打印“sum”的值,它在控制台中是正确的值.. 。 任何帮助都是极好的
function digital_root(n) {
let text = String(n);
let sum = 0;
for (let i = 0; i < text.length; i++) {
sum += Number(text[i]);
}
if (String(sum).length > 1) {
digital_root(sum);
} else {
return sum;
}
}
let score = digital_root(456);
解决方案
确保向上传播递归返回值。如果您在digital_root()
没有return
孩子结果的情况下调用,则父调用返回undefined
。
if (String(sum).length > 1) {
return digital_root(sum);
}
推荐阅读
- python - 将数据框附加到具有不同列数的现有 csv 文件
- r - 如何在忽略 NA 的同时计算 R 中的唯一值
- javascript - 使用带有多个配置的 TinyMCE 字符映射插件
- linux - socket read/recv得到的数据长度不确定
- akka.net - 通过路径向 Actor 发送查询参数
- python - 根据另一个列表中的值过滤列表
- oracle - 索引嵌套循环连接忽略 SQL 语句
- sql - SQL查询比较不相邻行的日期间隔?
- python - 如何在 Python 中修复我的重新编译语句
- java - 无法获取“https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.0.1/gradle-4.0.1.pom”