JSFiddle - React, Tailwind, and code Playground

by Jon-Carlos Rivera

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;
    }
}