ok ci sono quasi riuscito ma vorrei sapere una cosa..... SPERANDO CHE ALMENO QUESTA VOLTA QUALCUNO MI RISPONDA :

dato il codice ottimizzato:

codice:
function getCombinations(arr, n){
    var i,j,k,elem,l = arr.length,childperm,ret=[];
    if(n == 1){
        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{
        for(i = 0; i < l; i++){
            elem = arr.shift();
            for(j = 0; j < elem.length; j++){
                childperm = getCombinations(arr.slice(), n-1);
                for(k = 0; k < childperm.length; k++){
                          var elej= elem[j];
           
                    var chik= (childperm[k]);
                    var cos= (-1*((-1*elej) + (-1*chik)))/n;
                    ret.push(cos);
                }
            }
        }
        return ret;
    }
    i=j=k=elem=l=childperm=ret=[]=null;
}
 

var x = 60;
var arr = [["10"],["20"],["35"],["5"]];
var n = 2;

var results = getCombinations(arr.slice(),n);
document.getElementById("results").innerHTML = "[";
for(var i = 0; i < results.length; i++)
{
     if (((x-results[i]) <= 50) && ((x-results[i]) >= 40))  {
        alert(x-results[i]);
    }
    document.getElementById("results").innerHTML += "[" + results[i] + "]";
}
document.getElementById("results").innerHTML += "]";

cosi funziona.... ma se io volessi cambiare gli elementi per le combinazioni, inserendo delle variabili (prese da altre funzioni, e che hanno ovviamente un valore numerico...non funziona). Ad esempio sostituire cosi:

codice:
var x = 60;
var arr = [["10"],["20"],["35"],["5"]];
var n = 2;

con


codice:
var x = 329;
var arr = [["D18"],["D6"],["D7"]];
var n = 2;

non capisco perché non funziona..... (mettendoci anche le chiamate alle funzioni in cui vengono generate "le variabili")




SPERIAMO