JSFiddle - React, Tailwind, and code Playground

JavaScript

var getAcceleration = createAccelerationMap(0.1, 0.3, 0.6, 0.9, 2.0, 5.0);

alert(getAcceleration(0));          // 1
alert(getAcceleration(0.33));       // 2
alert(getAcceleration(0.64));       // 4
alert(getAcceleration(1.42));       // 8
alert(getAcceleration(3.14));       // 16
alert(getAcceleration(123456.789)); // 32

function createAccelerationMap(previous) {
    var length = arguments.length, limits = [];

    for (var i = 1; i < length;) {
        var current = arguments[i++];
        limits.push((previous + current) / 2);
        previous = current;
    }

    return function (time) {
        var length = limits.length, acceleration = 1;

        for (var i = 0; i < length;) {
            if (time < limits[i++]) return acceleration;
            acceleration *= 2;
        }

        return acceleration;
    };
}