JSFiddle - React, Tailwind, and code Playground

by James Allardice

JavaScript

/*function rfr(key, patterns) {
    this.node = key;
    this.branches = [];
    if (patterns.length === 0) {
        return;   
    }
    if (patterns.length === 1) {
        pattern = patterns[0];
        if (pattern) {
            root = pattern[0];
            if (pattern.slice(1).length) {
                //this.branches =    
            }
        }
    }
}*/

function rjust(s, w, p) {
    if (s.length < w) {
        return new Array(w + 1).join(p);
    }
    return s;
}

function fixPair(pair) {
    var s = pair[0] + "",
        e = pair[1] + "";
    return [rjust(s, e.length, "0"), e];
}

function strBp(breakpoint) {
    return fixPair([breakpoint + "", (breakpoint + 1) + ""]);   
}
    
function b1(s, e) {
    var breakpoint;
    s = s + "";
    e = e + "";
    if (s.length === e.length) {
        return [[s, e]];   
    }
    breakpoint = Math.pow(10, s.length) - 1;
    return [[s, breakpoint + ""]].concat(b(breakpoint + 1, e));
}

function b2(s, e) {
    var breakpoint,
        breakdigit,
        digit,
        bir2,
        p,
        a = [];
    if (s.length === 1) {
        return [[s, e]];
    }
    if (new Array(s.length + 1).join("0") === "0" + s.substring(1)) {
        if (new Array(e.length + 1).join("9") === "9" + e.substring(1)) {
            return [[s, e]];
        }
        if (+s[0] < +e[0]) {
            breakpoint = parseInt(e[0] + (new Array(e.length).join("0")), 10) - 1;
            p = strBp(breakpoint);
            return [[s, p[0]]].concat(b2(p[1], e));
        }
    }
    if (new Array(s.length + 1).join("9") === "9" + e.substring(1)) {
        if (+s[0] < +e[0]) {
            breakdigit = (1 + (+s[0])) + "";
            breakpoint = parseInt(breakdigit + (new Array(e.length).join("0")), 10) - 1;
            p = strBp(breakpoint);
            return b2(s, p[0]).concat([[p[1], e]]);
        }
    }
    if (+s[0] < +e[0]) {
        breakdigit = (1 + (+s[0])) + "";
        breakpoint = parseInt(breakdigit + (new...