Aspettate forse ho trovato qualcosa di meglio:
codice:function getCombinations(arr, n) { if(n == 1) { var ret = []; for(var i = 0; i < arr.length; i++) { for(var j = 0; j < arr[i].length; j++) { ret.push([arr[i][j]]); } } return ret; } else { var ret = []; for(var i = 0; i < arr.length; i++) { var elem = arr.shift(); for(var j = 0; j < elem.length; j++) { var childperm = getCombinations(arr.slice(), n-1); for(var k = 0; k < childperm.length; k++) { ret.push([elem[j]].concat(childperm[k])); } } } return ret; } } var arr = [["1"],["2"],["3"],["4"],["5"],["6"],["7"],["8"],["9"],["10"],["11"],["12"]]; var n = 2; var results = getCombinations(arr.slice(),n); document.getElementById("results").innerHTML = "["; for(var i = 0; i < results.length; i++) { document.getElementById("results").innerHTML += "[" + results[i] + "]"; } document.getElementById("results").innerHTML += "]";

Rispondi quotando