我试图回答这个question我遇到了一个奇怪的循环条件。奇怪的内部循环没有执行某些迭代
for (index1 = 1; index1 < 8; index1++) {
var op = '#';
for (index2 = index1; index2 - 1; index2--) { //this loop is weird to me
op = op + '#';
}
console.log(op);
}
在检查内循环多少次迭代使得每个外循环迭代,我得到这样的:
var x = 0;
for (index1 = 1; index1 < 8; index1++) {
//var op = '#';
for (index2 = index1; index2 - 1; index2--) {
var log = {};
log.a = x; //check value before increment
x++;
log.b = x; //check value after increment
console.log(`outer: ${index1}, inner: ${index2}`, log);
}
console.log(x);
x = 0;
//console.log(op);
}
正如你所看到的,它记录0, 1, 2, 3, 4, 5, 6
。
我的问题是:
是第一个外循环迭代不迭代的内部循环,因为
index2 - 1
等于零,这是falsy?
尝试在调试器中逐行执行代码。 –
'index2 - 1'有点尴尬。 –
在内部循环中添加'console.log',并且记录值 –