62,614
社区成员
发帖
与我相关
我的任务
分享
<html>
<head>
<script type="text/javascript">
function loopToRecursion(input, output, array, j) {
if (j == array.length) {
var str = "";
for (var i = 0; i < array.length; i++) {
if (str.length > 0) {
//如果需要的话在这里可以给每个数组的输出结果加一个分隔符
str = str + "";
}
str = str + input[i][array[i]];
}
output.push(str);
} else {
while (array[j] < input[j].length) {
loopToRecursion(input, output, array, j + 1);
array[j]++;
if (j + 1 < array.length) {
array[j + 1] = 0;
}
}
}
}
var intputArray = new Array();
intputArray.push([ "aa", "bb", "cc" ]);
intputArray.push([ "xx", "yy" ]);
intputArray.push([ "11", "22", "33", "44" ]);
intputArray.push([ "$&", "&*%", "@$%", "*_*" ]);
document.write("input:<br>");
for ( var j in intputArray) {
var array = intputArray[j];
var str = "";
for ( var i in array) {
if (str.length > 0) {
str = str + ",";
}
str = str + array[i];
}
document.write(" " + str + "<br>");
}
document.write("<br>output:<br>");
var tempArray = new Array();
for (var i = 0; i < intputArray.length; i++) {
tempArray.push(0);
}
var outputArray = new Array();
loopToRecursion(intputArray, outputArray, tempArray, 0);
for(var i in outputArray){
document.write(" " + outputArray[i] + "<br>");
}
</script>
</head>
<body>
</body>
</html>
<html>
<body>
<p id="abc"></p>
<script>
var L1=["a","b","c","d"];
var L2=["1","2"];
var L3=["e","f"];
var L4=["g","h"];
document.getElementById("abc").innerHTML=permutations(L1,L2,L3,L4);
function permutations(){
var temp=arguments[0];
for(var i=1;i<arguments.length;i++)
temp=addSuffix(temp,arguments[i]);
return temp;
}
function addSuffix(array1,array2){
var temp=new Array();
for(var i=0;i<array1.length;i++)
for(var j=0;j<array2.length;j++)
temp[i*array2.length+j]=array1[i].toString()+array2[j].toString();
return temp;
}
</script>
<body>
</html>