简体   繁体   English

return 语句有问题,它总是返回 undefined

[英]Problem with return statement, it return undefined always

I wanted something to be returned as output but not able to.我想要一些东西作为输出返回,但不能。

function arrsort(arr){
 return arr.sort(function(a, b){return a - b});
 }
const binarySearch=(arr,num,start,end)=>{
 arr=arrsort(arr);
 start=0;
 end=arr.length;
 var mid = Math.floor(end / 2);
 if (arr[mid] === num) {
    return true;
 } else if (arr[mid] < num && end > 1) {
    binarySearch(arr.splice(mid, Number.MAX_VALUE), num,start,end);
 } else if (arr[mid] > num && end > 1) {
    binarySearch(arr.splice(start, mid), num,start, end);
 } else {
        return false;
 }
  }

I expected the output as true or false.我期望输出为真或假。

You need some more return statements before calling the same function again.在再次调用同一个函数之前,您需要更多的 return 语句。

And while you return for every true if statement, you could omit else .当您为每个true if语句返回时,您可以省略else

function arrsort(arr) {
    return arr.sort(function(a, b) {
        return a - b;
    });
}

const binarySearch = (arr, num, start, end) => {
    arr = arrsort(arr);
    start = 0;
    end = arr.length;
    var mid = Math.floor(end / 2);
    if (arr[mid] === num) {
        return true;
    } 
    if (arr[mid] < num && end > 1) {
        return binarySearch(arr.splice(mid, Number.MAX_VALUE), num, start, end);
    } 
    if (arr[mid] > num && end > 1) {
        return binarySearch(arr.splice(start, mid), num, start, end);
    } 
    return false;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM