javascript - 数字根JS

标签 javascript arrays

输入: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/

相关文章:

javascript - 通过js设置页面历史记录和页面内容

php - 如何在 PHP 中最好地构建硬编码数组数据?

Java:数组返回最大数错误

javascript - 如何在 JavaScript 中组合和分组数组

C++ - 按包含的对象属性对多维 vector 进行排序

javascript - 如何选择具有复杂 ID 的元素

javascript - Javascript 对象属性和数组之间的迭代有什么区别

javascript - 谷歌翻译的多个实例

javascript - Angular 4 显示其中的数据