【问题标题】:for loop mysteriously not runningfor 循环神秘地没有运行
【发布时间】:2022-01-18 18:47:56
【问题描述】:

代码:

var m = [
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█",
  "█","█","█","█","█","█","█","█"
];

for (var i = 0; i > m.length, i++;) {
  console.log(m[i]);
}

似乎 for 循环根本没有运行,因为在 console.log 中输入任何值都不会执行任何操作。

怎么了?

(另外,console.log(m) 本身输出 U+2588 很好。)

【问题讨论】:

  • m 看起来像什么?给我们一个包含五六个元素的样本。
  • 检查你的循环条件。 MDN for loop

标签: javascript arraylist


【解决方案1】:

i > m.length 应该是 i < m.length,因为您正在尝试从 0 迭代到数组的长度

它的要点是你的迭代器 (i) 应该被初始化为 0(它是),但是你正在检查它是否大于m 的长度,这是大概大于0;所以因为你用零值初始化 i,然后检查它是否大于 m 的长度,所以无论 m 是否有任何成员,它总是评估为 false。

【讨论】:

  • 对不起,没用。一无所获。
  • @silvxrcat 那是不可能的。
【解决方案2】:

i 必须小于 m.length,并且您的 for 语句中有几个语法错误。

const m = ['a','b','c']

for (let i = 0; i < m.length; i++) {
  console.log(m[i]); // m is a list of U+2588s.
}

【讨论】:

  • 成功了!谢谢!
  • @silvxrcat 和你说的一样的答案没用?
猜你喜欢
  • 2014-10-23
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多