function plusD(n) {
if (n > 9) {
let varies = 0;
let NewN = n.toString().split('');
console.log(NewN)
for (let i = 0; i < NewN.length; i++) {
varies = varies + parseInt(NewN[i])
}
if (varies > 9) {
plusD(varies)
}
return varies;
}
}
如您所见,最后还有一个额外的if语句,当true再次调用
plusD
函数时,会导致数字的另一个加法;或者,如果结果为false(仅当数字成功地减少到一位数字时),返回数字。 最佳答案
您缺少return
。否则,将永远不会考虑函数的返回值。
function plusD(n) {
if (n > 9) {
let varies = 0;
let NewN = n.toString().split('');
console.log(NewN)
for (let i = 0; i < NewN.length; i++) {
varies = varies + parseInt(NewN[i])
}
if (varies > 9) {
return plusD(varies)
}
return varies;
}
}
console.log(plusD(29));
关于javascript - 为什么我的函数不能将数字减少到一位数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60418435/