& lthead & gt
& lttitle & gtJs兩個數組排列組合
& lt劇本?type = " text/JavaScript " & gt;
var?答?=?【“A”、“B”、“C”】;
var?b?=?["1",?"2","3"];
window.onload?=?功能?()?{
var?a1?=?新的?obj pl(a);//計算數組a的排列組合。
var?b1?=?新的?obj pl(b);//計算數組b的排列組合。
var?str?=?"";
var?n?=?0;
//a 1和b1的排列組合數是它們的乘積(雙循環)。
為了什麽?(var?我?=?0;?我?& lt?a 1 . length;?i++)?{
為了什麽?(var?j?=?0;?j?& lt?b 1 . length;?j++)?{
str?+=?a1[i]?+?b1[j]?+?"?";
n++;
}
str?+=?“& ltbr/>;
}
document.write("*** "?+?n?+?“答
document . write(str);
}
//取數組的排列組合。
功能?objPL(arr)?{
這個. a?=?arr
這個. r?=?[];
這個. n?=?0;
//從m的個數中取n(遞歸)
this.mGetN?=?功能?(curIndex,?num,?curSelect)?{
如果?(num?==?0)?{
this.r[this.n++]?=?curSelect?返回;
}
如果?(this.a.length?-?curIndex?& lt?num)?返回;
this.mGetN(curIndex?+?1,?num?-?1,?curSelect?+?this . a[curIndex]);
this.mGetN(curIndex?+?1,?num,?curSelect);
}
為了什麽?(var?我?=?1;?我?& lt=?這個長度;?i++)?{
this.mGetN(0,我,?"");
}
回歸?this.r
}
& lt/script & gt;
& lt/head & gt;
& ltbody & gt& lt/body & gt;
& lt/html & gt;
["A "," B "," C"]和["1 "," 2 "," 3"]組合的結果: