我試圖找到所有使用嵌套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