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

Rispondi quotando