我们知道,我们可以省略for循环中的初始化:
var i = 0;
for(; i < 10; i++) {
// do Something with i
}
但是,我想知道我是否也省略了嵌套循环中的初始化:
var i = 0;
var j = 0;
for(; i < 10; i++) {
for(; j < 10; j++) {
// only do Something with j
// outner loop only run once
}
}
解决方案:
var i = 0;
var j;
for(; i < 10; i++) {
j = 0;
for(; j < 10; j++) {
// everything is fine!
}
}
任何人都可以解释发生了什么事吗?我是Javascript中的新手。
答案 0 :(得分:1)
循环运行多次,但是你的&#39; j&#39;在第一次运行i
之后已经是十,所以第二个循环不再在i
的下一个值期间运行。
如果你写这样的话。
for(; i < 10; i++) {
for(; j < 10; j++) {
console.log("test")
}
console.log("another test")
}
您会看到两条消息都被打印了10次。
你&#34; j&#34;循环,只运行一次&#34;十次&#34;,是因为在运行10次后你没有将J设置回零。因此,对于第一次运行后j < 10
的每个循环,语句i
都是正确的。
你可以通过在第一个for循环中设置j = 0
来解决这个问题(如果你不想把它放在第二个循环的变量初始化中。)
for(; i < 10; i++) {
j = 0;
for(; j < 10; j++) {
console.log("test")
}
console.log("another test")
}
答案 1 :(得分:-1)
每次i
递增时,您需要将j
重置为0
。
如果您重写脚本以便在 for loop
语句本身内初始化每个变量,那么每次i
递增时,j
将重置为0
。
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
}
}