我试图找到所有使用嵌套while循环和continue语句的3个数组的排列。它几乎是按照我的意愿工作的,但是当把控制权交还给外环时会增加一个额外的元素。我将使用递归重写它,但想知道它为什么这样做。这里有一个链接:http://jsbin.com/fuyup/15/editJavascript嵌套while循环与continue语句没有按预期行为
感谢您的任何建议。
function findPermutations() {
var g1 = ['a1', 'a2'],
g2 = ['b1', 'b2', 'b3'];
g3 = ['c1', 'c2', 'c3', 'c4'];
var g1p = 0,
g2p = 0,
g3p = 0,
g1len = g1.length,
g2len = g2.length,
g3len = g3.length,
temp = [],
result = [];
outerloop: while (g1p < g1len) {
temp.push(g1[g1p]);
while (g2p < g2len) {
temp.push(g2[g2p]);
while (g3p < g3len) {
temp.push(g3[g3p]);
result.push(temp);
temp = [];
g3p++;
continue outerloop;
}
g3p = 0;
g2p++;
}
g2p = 0;
g1p++;
}
return result;
}
您的代码无效语法:'outerloop:while(g1p
hindmost
2014-10-07 12:38:52
@最后的'outerloop:'是一个标签。请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label – forgivenson 2014-10-07 12:41:15