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 += "]";