1. 程式人生 > >js多個(N)個數組的的元素組合排序演算法,多維陣列的排列組合或多個數組之間的排列組合

js多個(N)個數組的的元素組合排序演算法,多維陣列的排列組合或多個數組之間的排列組合

複製程式碼
/*返回組合的陣列*/
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; return
doExchange(newArr); }else{ return arr[0]; } } // var arr = [['a', 'b', 'c','d'], [1, 2, 3,4], ['x', 'y', 'z'],['魅族手機']]; console.log(doExchange(arr));
複製程式碼