<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>
原文地址:https://www.cnblogs.com/hapday/p/10549806.html
时间: 2024-10-13 16:32:21