【问题标题】:for loop appears to not be running at allfor 循环似乎根本没有运行
【发布时间】:2022-01-22 07:58:33
【问题描述】:

我知道有更好的方法来做我正在做的事情,但我真的很困惑为什么 for 循环根本没有运行。

function intArray(x) {
  let a = x.toString();
  let b = a.split("");
  return b;
}

function digitalRoot(n) {
  var b = intArray(n);
  console.log(b);
  let d = 0;
  for (var i = 0; i > b.length; i++) {
    d += parseInt(b[i]);
    console.log("for loop doing anything?");
  }
  return d;
}
// Desired output (for now):28
let testNumber = 73279;
console.log(digitalRoot(testNumber));

【问题讨论】:

  • 仔细检查您的循环条件:i > b.length
  • 您的循环仅在i > b.length 时运行,也就是说,如果数组的长度为负数。
  • 谢谢你,我现在觉得自己像个白痴一样没有看到这个哈哈。

标签: javascript for-loop


【解决方案1】:

您的 for 循环条件错误。它应该是“小于”而不是“大于”,因为您从零开始到数组的长度

function intArray(x) {
  let a = x.toString();
  let b = a.split("");
  return b;
}

function digitalRoot(n) {
  var b = intArray(n);
  console.log(b);
  let d = 0;
  for (var i = 0; i < b.length; i++) { // <- HERE
    d += parseInt(b[i]);
    console.log("for loop doing anything?");
  }
  return d;
}
// Desired output (for now):28
let testNumber = 73279;
console.log(digitalRoot(testNumber));

【讨论】:

  • 我冒昧地将您的代码变成了可运行的 sn-p
【解决方案2】:

function intArray(x) {
  return x.toString().split("");
}

function digitalRoot(n) {
  var b = intArray(n);
  let d = 0;
  
  for (var i = 0; i < b.length; i++) {
    d += parseInt(b[i]);
  }
  return d;
}

// Desired output (for now):28
let testNumber = 73279;
console.log(digitalRoot(testNumber));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多