JSFiddle - React, Tailwind, and code Playground

by Christian Bonato

HTML

<pre><code id="output"></code></pre>

JavaScript

var print = (function() {
    var output = document.getElementById("output");
    return function(msg) {output.innerHTML += "\n" + msg;}
}());

var lowerKeyFinder = function(prices) {
    var keys = Object.keys(prices);
    keys.sort(function(a, b) {return a - b;});
    
    return function(val) {
        var maxKey = -1;
        for (var i = 0, len = keys.length; i < len; i++) {
            if (maxKey < 0 || keys[i] < val) {
                maxKey = Math.max(maxKey, keys[i]);
            }
        }
        return maxKey;
    };
};

var priceArray = {
    1: 39.99,
    5: 24.99,
   10: 19.99,
   15: 15.99,
   20: 10.99,
   25:  5.99,
   30:  0.99
}

var lookup = lowerKeyFinder(priceArray);

print("1 ==> " + lookup(1.5));
print("3 ==> " + lookup(5.1));
print("7 ==> " + lookup(7.52));
print("22 ==> " + lookup(39.99));