JavaScript 递归法排列组合二维数组
2024-10-19 00:32:03
<html> <head>
<title>二维数组排列组合</title>
</head> <body>
<div id="showDiv"></div>
</body> <script type="text/javascript">
var arrays = [
[
'1-1-雨尘', '1-2-芸芸', '1-3-简一', '1-4-乐乐'
]
, [
'2-5-小明', '2-6-花花', '2-7-数数'
]
, [
'3-8-静静', '3-9-点点', '3-10-hapday', '3-11-欢欢', '3-12-yuchen'
]
];
// debugger; /**
* 递归法排列组合二维数组
*/
function doExchange(doubleArrays){
var len=doubleArrays.length; if (len >= 2) {
var len1 = doubleArrays[0].length;
var len2 = doubleArrays[1].length;
var newlen = len1 * len2;
var temp = new Array(newlen);
var rowIndex=0; for(var index = 0; index < len1; index++){
for(var cursor = 0; cursor < len2; cursor++){
temp[rowIndex] = doubleArrays[0][index] + '#' + doubleArrays[1][cursor]; rowIndex++;
}
} var newArray = new Array(len-1); for (var index = 2; index < len; index++) {
newArray[index - 1] = doubleArrays[index];
} newArray[0] = temp; var result = doExchange(newArray);
console.log(result);
return result;
} else {
var result = doubleArrays[0];
console.log('只有一个内层数组:\n' + result + '\n');
console.log('===================================');
return result;
}
} var ret = doExchange(arrays); window.document.getElementById('showDiv').innerHTML += '共有 ' + ret.length + ' 种组合。<br /><br />'; for (var index = 0; index < ret.length; index++) {
var row = ret[index];
var rows = row.split('#');
// debugger;
for (var cursor = 0; cursor < rows.length; cursor++) {
window.document.getElementById('showDiv').innerHTML += rows[cursor] + ' ';
}
window.document.getElementById('showDiv').innerHTML += '<br />';
} </script> </html>
最新文章
- AlloyTouch全屏滚动插件发布--30秒搞定顺滑H5页
- 实践:Backbone作前端,Django+Tastypie作后端的简单Web在线聊天室
- 学习总结——Selenium元素定位
- Delphi 2010 Can&#39;t load package C:\Programme\Afalinasoft\Add-in Express 2\d5units\adxwizardd5.bpl.
- 网络编程中获取域名和id的方法
- ros与下位机通信常用的c++ boost串口应用
- 《OD大数据实战》Hive入门实例
- Axzue注册码
- 设计模式24---设计模式之职责链模式(Chain of Responsibility)(行为型)
- Ztree中simpleData是怎么转换成标准ztree数组对象的
- popen()函数详解
- ExtJS4.1自带API打不开的问题解决
- Spring学习笔记①
- github上传项目
- 游戏人工智能编程案例精粹(修订版) (Mat Buckland 著)
- Linux JDK Tomcat Nginx MariaDB 安装,Nginx 多域名转发配置
- Windows下命令行怎样登录MySQL
- CentOS安装mysql源码包
- linux下安装mysql等信息
- 结合 Redis 实现同步锁