JavaScript 二維數組排列組合2
阿新 • • 發佈:2019-03-18
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