从字符串中删除undefined

时间:2016-05-24 09:21:30

标签: javascript

我正在尝试,使用Javascript进行二进制搜索,一切正常,但是我无法控制(显示)未定义的值(我想打印'数字不在列表中'如果项目不在列表中。)

提前致谢。

这是我的代码:

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;

}

1 个答案:

答案 0 :(得分:1)

在函数末尾添加return语句

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

这会阻止undefined。而是返回字符串。