Mi piacerebbe sapere perché sto ottenendo un loop infinito qui. Semplicemente non voglio passare questo valore iniziale, quindi se sono undefined
vengono calcolati automaticamente. È solo per pulire la mia chiamata di funzione per utilizzare solo un singolo parametro. Se li passo tutto va bene e il processo finisce. Qualcuno può aiutare? GraziePerché sto ottenendo un ciclo infinito quando non definisco i parametri?
function merge(array, lower, half, upper){
//Suppressed for the sake of brevity
}
function mergeSort(array, lower, upper){
if(!lower && !upper){ //take a look here
lower = 0;
upper = array.length - 1;
}
if(lower < upper){
var half = Math.floor((lower + upper)/2);
mergeSort(array, lower, half);
mergeSort(array, half + 1, upper);
merge(array, lower, half, upper);
}
}
var array = [8, 3, 6, 4, 1, 0, 23, 12, 15, 63];
mergeSort(array); //infinite loop here
console.log(array);
Grazie per aver corretto i nomi delle variabili. :) Vuoi 'if (inferiore == undefined && upper == undefined)' invece di 'if (! Lower &&! Upper)'. –
@ElliotBonneville dare un'occhiata a come ora la mia funzione Unisci è simile; https://gist.github.com/3165423 - puoi lasciare commenti nella pagina di Gist per miglioramenti !!! Grazie per le critiche positive! =) – renatoargh