此代码仅来自我的构造函数的一小部分。
第一个输出应该是('1'或'2'),然后是'0',直到结尾;而不是仅使用纯0。它给我1000的0。我不知道为什么。
我用'cols'和'row'变量的较低值进行了测试,并且工作正常。 (它第一次输出:“ 1”,然后输出“ 0”)但是,当列数和行数较高时,问题再次出现。 它的内存限制?我不知道有多少内存。
我应该怎么做才能避免将来出现此问题?我应该使用功能吗?为每个或类似递归?谢谢。
P.N。如果您似乎没有任何问题,请尝试为cols和rows设置更高的值。也许这应该触发问题。
var i, row_rate
var cols = 50
var rows = 31
var count = 0
for (i = 0; i < cols * rows; i++) {
row_rate = Math.trunc(Math.trunc(i / cols) * 100 / rows)
if (count > 0) {
console.log(0)
}
else if (row_rate <= 20) {
// the first time must pass here...
count++
console.log(1)
}
else {
// ...or here
count++
console.log(2)
}
}
答案 0 :(得分:2)
第一个console.log()
不是0
,而是1
,此后记录了一千个零:
(1549的数字表示同一记录行的1549次重复)
问题在于输出不支持该数目的行,因此删除了较旧的行。在Chrome开发者工具(F12)上,您可以检查Group similar
来避免此问题:
您也可以通过break
控制台日志上的0
轻松地看到它。在记录1
之前,您将看到第一条日志行实际上是0
:
var i, row_rate
var cols = 50
var rows = 31
var count = 0
for (i = 0; i < cols * rows; i++) {
row_rate = Math.trunc(Math.trunc(i / cols) * 100 / rows)
if (count > 0) {
console.log(0)
break;
}
else if (row_rate <= 20) {
// the first time must pass here...
count++
console.log(1)
}
else {
// ...or here
count++
console.log(2)
}
}