输入:635
输出:6+3+5 = 14 1+4=5
输入:65,536
输出:2+5=7(有效)
function digital_root(n) {
var z = n.toString();
if (z.length == 2) {
var x = parseInt(z[0]) + parseInt(z[1]);
return x;
} else if(z.length > 2){
var i;
for(i=0;i<=z.length;i++){
var y = 0;
y += parseInt(z[i]);
}
return y;
}
}
console.log(digital_root(123)) // NaN
有人可以帮我更改此代码吗?我对返回变量的类型有点困惑。
最佳答案
两个问题:需要初始化y
在您递增它的循环之外,您应该在 之前 i=z.length
停止循环;即i<z.length
而不是i<=z.length
。这应该有效:
function digital_root(n) {
var z = n.toString();
if (z.length == 2) {
var x = parseInt(z[0]) + parseInt(z[1]);
return x;
} else if(z.length > 2){
var i;
var y = 0;
for(i=0;i<z.length;i++){
y += parseInt(z[i]);
}
return y;
}
}
关于javascript - 数字根JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50994765/