js多個(N)個數組的的元素組合排序演算法,多維陣列的排列組合或多個數組之間的排列組合
阿新 • • 發佈:2019-02-20
/*返回組合的陣列*/ function doExchange(array){ var len = arr.length; // 當陣列大於等於2個的時候 if(len >= 2){ // 第一個陣列的長度 var len1 = arr[0].length; // 第二個陣列的長度 var len2 = arr[1].length; // 2個數組產生的組合數 var lenBoth = len1 * len2; //申明一個新陣列 var items = new Array(lenBoth); // 申明新陣列的索引 var index = 0; for(var i=0; i<len1; i++){ for(var j=0; j<len2; j++){ if(arr[0][i] instanceof Array){ items[index] = arr[0][i].concat(arr[1][j]); }else{ items[index] = [arr[0][i]].concat(arr[1][j]); } index++; } } var newArr = new Array(len -1); for(var i=2;i<arr.length;i++){ newArr[i-1] = arr[i]; } newArr[0] = items; returndoExchange(newArr); }else{ return arr[0]; } } // var arr = [['a', 'b', 'c','d'], [1, 2, 3,4], ['x', 'y', 'z'],['魅族手機']]; console.log(doExchange(arr));