期望的结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
我的循环:
arr = []
n = 0; b = 0
while b < 2
while n < 12
arr.push n
n++
b++
return arr
实际结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
答案 0 :(得分:6)
在内循环中完成后,将n
的值重新初始化为0:
arr = []
n = 0; b = 0
while b < 2
while n < 12
arr.push n
n++
n = 0 // <------ Added this
b++
return arr
这样,每个外部迭代都有一个“新鲜”值n
。
虽然有了这个,但我得到的值是0到11,而不是你想的1到12。所以我会修改它(使用真正的JS):
function test() {
var arr = [];
var n = 1;
var b = 0;
while (b < 2) {
while (n <= 12) {
arr.push(n);
n++;
}
n = 1;
b++;
}
return arr;
}
但正如@Blender指出的那样,因为你真的只是在模仿一个for
循环,所以使用一个!:
function test2() {
var arr = [];
for (var b = 0; b < 2; b++) {
for (var n = 1; n <= 12; n++) {
arr.push(n);
}
}
return arr;
}