正在做这个项目,能用得上,记录一下,数组可以自己随意组合。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
// 创建数组
var arrGroup = [["宝石色", "蓝色"], ["6寸", "5寸", "4寸"], ["3G", "4G","6G"]];
var arrStack = [];
var strStack = [];
// 开始组合数组
function printResult(strStack, arrGroup, index) {
if (index + 1 > arrGroup.length) {
return;
}
var arr = arrGroup[index];
var nextIndex = index + 1;
for (var i = 0; i < arr.length; i++) {
strStack.push(arr[i]);
printResult(strStack, arrGroup, nextIndex);
if (nextIndex + 1 > arrGroup.length) {
console.log(strStack.join("_")); //打印最终结果。
}
if (strStack.length > 0) {
strStack.pop();
}
}
}
/**
* 如果二二组合,size = 2 , 如果 三三组合 size = 3
*/
function print(arrStack, strStack, arrGroup, size, index) {
if (index + 1 > arrGroup.length) {
return;
}
var nextIndex = index + 1;
arrStack.push(arrGroup[index]);
if (arrStack.length == size) {
printResult(strStack, arrStack, 0);
}
print(arrStack, strStack, arrGroup, size, nextIndex);
if (arrStack.length > 0) {
arrStack.pop();
}
print(arrStack, strStack, arrGroup, size, nextIndex);
}
// 二二组合
print(arrStack, strStack, arrGroup, 3, 0);
// //三三组合
// print(arrStack,strStack,arrGroup,3,0);
// var arr4 = ["e","f"];
// var arr5 = ["g","h"];
// arrGroup.push(arr4);
// arrGroup.push(arr5);
// //四四组合
// print(arrStack,strStack,arrGroup,4,0);
</script>
</body>
</html>