[英]Problem with return statement, it return undefined always
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;
}
}
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.