2016-05-24 13 views
1

Ich versuche zu tun, binäre Suche mit Javascript, alles funktioniert gut, aber ich bin nicht in der Lage, den undefinierten Wert zu trösten (anzuzeigen) (ich möchte 'die Nummer ist nicht in der Liste 'wenn der Artikel nicht in der Liste ist.)Entfernen undefined von einer Zeichenfolge

Vielen Dank im Voraus.

Hier ist mein Code:

function bSearch(userInput, numb){ 
//var inputSplit = userInput.toString().split(''); 
var input = numSort(userInput); 
//console.log(input); 
var start = 0; 

var n = input.length; 
//console.log(n); 
var end = n-1; 
var output = ''; 
//var mid = (start + end)/2; 
// console.log(mid); 
while(start <= end){ 
var mid = (start + end)/2; 
mid = Math.floor(mid); 
//console.log(mid); 
if(input[mid] == numb){ 
    output = input[mid]; 
    return output;  
}else if(numb < input[mid]){ 
    end = mid - 1; 
}else if(numb > input[mid]){ 
    start = mid + 1; 
} 

} }

function numSort(num){ 
var temp = ''; 
var res = ''; 
arr = num.toString().split(''); 
var n = arr.length; 
for(i=0; i<n-1; i++){ 
    for(d=0; d<n-i-1; d++){ 
     if(arr[d] > arr[d+1]){ 
      temp = arr[d]; 
      arr[d] = arr[d+1]; 
      arr[d+1] = temp;     
     } 
} 

} 
for(i=0; i<n; i++){ 
    res += arr[i]; 
}return res; 

}

+0

fügen Sie bitte einige Eingänge und erwartete Ausgänge hinzu. –

+1

Sicher. Hier ist meine Eingabe: if console.log (bSearch (245198, 2)); Es zeigt 2. aber wenn console.log (bSearch (245198, 3)); es zeigt 'undefiniert' – Johny

Antwort

1

am Ende der Funktion

die return-Anweisung hinzufügen
function bSearch(userInput, numb) { 
    // lots of code (some vars without declarations ...) 
    // ... 
    return 'the number is not in the list'; 
} 

Dies ist p reventing undefined. Stattdessen gibt es die Zeichenfolge zurück.

Verwandte Themen