1. 程式人生 > >JavaScript 二維數組排列組合2

JavaScript 二維數組排列組合2

log return element targe esb yar ava cells UNC

<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‘
			] 
		];

		var array = getArrayByArrays(arrays);

		window.document.getElementById(‘showDiv‘).innerHTML = ‘共計 ‘ + array.length + ‘ 種組合。<br /><br />‘;

		for (var index = 0; index < array.length; index++) {
			var row = array[index];
			var rows = row.split(‘#‘);

			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 />‘;
		}
	  
	  	/**
		 * 獲取【二維數組】的【排列組合】
		*/
		function getArrayByArrays(arrays) {
			var arr = [ ‘‘ ];		// 初始化第一個內層數組

			/**
			 * 遍歷外層數組
			*/
			for (var index = 0; index < arrays.length; index++) {
				arr = getValuesByArray(arr, arrays[index]);
			}

			return arr;
		}
	  
		function getValuesByArray(arr1, arr2) {
			var arr = [];

			/**
			 * 遍歷外層數組
			*/
			for (var index = 0; index < arr1.length; index++) {
				var value1 = arr1[index];

				/**
				 * 遍歷內層數組
				*/
				for(var cursor = 0; cursor < arr2.length; cursor++) {
					var value2 = arr2[cursor];

					var target = ‘‘;
					if (null !== value1 && undefined !== value1 && ‘‘ !== value1) {
						target = value1 + ‘#‘ + value2;
					} else {
						target = value2;
					}

					arr.push(target);
					console.log(arr);
				};
			};

			return arr;
		};

	</script>

</html>

  

JavaScript 二維數組排列組合2