JavaScript 递归法排列组合二维数组2
<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++) {
var cell = rows[cursor];
var cells = cell.split('-'); for (var kk = 0; kk < cells.length; kk++) {
window.document.getElementById('showDiv').innerHTML += cells[kk] + ' ';
} window.document.getElementById('showDiv').innerHTML += ' ';
}
window.document.getElementById('showDiv').innerHTML += '<br />';
} </script> </html>
JavaScript 递归法排列组合二维数组2的更多相关文章
- JavaScript 递归法排列组合二维数组
<html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...
- python3--算法基础:二维数组转90度
python3--算法基础:二维数组转90度 [0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3] 二维数组转90度 [0, 0, 0, 0][1, 1, ...
- 元素均匀排列自动换行&二维数组前端遍历
1.元素均匀排列并自动换行 display:flex; flex-wrap:wrap; 2.getFiled();取一行,取多行的话用getFiled(‘id’,true); 3.二维数组前端遍历: ...
- 递归分治算法之二维数组二分查找(Java版本)
[java] /** * 递归分治算法学习之二维二分查找 * @author Sking 问题描述: 存在一个二维数组T[m][n],每一行元素从左到右递增, 每一列元素从上到下递增,现在需要查找元素 ...
- JAVASCRIPT一维数转化为二维数组
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- C语言二维数组作为函数参数
设有整型二维数组a[3][4]如下:0 1 2 34 5 6 78 9 10 11 它的定义为: int a[3][4]={{0,1,2,3},{4,5,6,7} ...
- JavaScript 二维数组排列组合2
<html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...
- JavaScript 二维数组排列组合
<html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...
- C#/JS 获取二维数组组合
C#获取二维数组组合 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
随机推荐
- scrapy连接MongoDB
Scrapy中连接MongoDB所需要做的工作如下: 1.settings中需要设置的部分: # 启动管道组件 ITEM_PIPELINES = { 'QianChengWuYu.mongoDBPip ...
- 为什么sudo执行命令还是会提示权限不够
安装openstack 的过程中需要执行以下命令,虽然使用了sudo,但是依然提示权限不够 $ sudo echo "deb http://ubuntu-cloud.archive.cano ...
- 主流服务器虚拟化技术简单使用——Xen(一)
Tips:因为博客园网页布局的原因,部分图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstat ...
- Little Sub and Traveling(杭师大第十二届校赛E题) 欧拉回路
题目传送门 题目大意: 从0出发,每次只能跳到(i*2)%n或者(i*2+1)%n,求字典序最大的哈密顿回路. 思路: 首先n为奇数时无解,先来证明这一点. 先假设n为奇数,若要回到原点,则必定有一步 ...
- Shiro入门指引
最近项目中用到Shiro,专门对其研究了一番,颇有收获,以下是笔者最近写的博客,希望对大家入门有所帮助. Shiro入门资源整理 Shiro在SpringBoot中的使用 Shiro源码解析-登录篇 ...
- Jenkins windows部署
1.安装jenkins 进入https://jenkins.io/download/,下载windows安装包,解压后运行jenkins.msi进行安装. 配置jenkins (1)打开http:// ...
- Java转python第二天
1.dict基本操作 dic = {"name":"张三","age":21} # 增 dic['high'] = 185 # 增加 ,结果 ...
- 数组去重 && 快速排序 && 数组中重复元素最多的 && 深拷贝
var arr0 = [1,3,3,3,4,4,4,4,5,5]; var arr1 = [10,9,2,5,7,34,65,48,90,103]; var newArr=[]; /* for(var ...
- VS2013下使用cjson
想要在C++实现json文件的读取.因为中间也遇到过很简单的坑,为了增加记忆,对实现过程做一个记录. 本文采用的是静态链接库的方式: 1.先在github上下载源码, json源码下载地址 2.打开m ...
- jconsole 和jvisualVM 监控远程 spring boot程序
监控java 程序 增加启动参数 java \ -Djava.rmi.server.hostname=192.168.2.39 \ -Dcom.sun.management.jmxremote \- ...