JSFiddle - React, Tailwind, and code Playground
JavaScript
function foo(min, max, target) {
var mid = Math.floor((min + max) / 2);
var limit = mid === min || mid === max;
console.log(mid);
if (mid > target) {
if (limit) {
if (mid !== min) {
return foo(min, min, target);
}
return mid;
}
return foo(min, mid);
} else if (mid < target) {
if (limit) {
if (mid !== max) {
return foo(max, max, target);
}
return mid;
}
return foo(mid, max);
} else {
return mid;
}
}