demo/index.js
function numberToCategory(value, buckets) {
    if (!buckets) {
        buckets = [-2, -2/3, 2/3, 2];
    }
    if (typeof buckets.length === 'number' && buckets.length > 3) {
        if (value <  buckets[0]) return 'very low';
        if (value <  buckets[1]) return 'low';
        if (value <  buckets[2]) return 'medium';
        if (value <  buckets[3]) return 'high';
        if (value >= buckets[3]) return 'very high';
    }
    var keys = Object.keys(buckets).sort(function(a, b) {
            return buckets[a] - buckets[b];
        }),
        l = keys.length;
    for (var i = 0; i < l; i++) {
        if (value < buckets[keys[i]]) {
            return keys[i];
        }
    }
    return keys[l-1];
}
function numberToCategory(value, buckets) {
    if (!buckets) {
        buckets = [-2, -2/3, 2/3, 2];
    }
    if (typeof buckets.length === 'number' && buckets.length > 3) {
        if (value <  buckets[0]) return 'very low';
        if (value <  buckets[1]) return 'low';
        if (value <  buckets[2]) return 'medium';
        if (value <  buckets[3]) return 'high';
        if (value >= buckets[3]) return 'very high';
    }
    var keys = Object.keys(buckets).sort(function(a, b) {
            return buckets[a] - buckets[b];
        }),
        l = keys.length;
    for (var i = 0; i < l; i++) {
        if (value < buckets[keys[i]]) {
            return keys[i];
        }
    }
    return keys[l-1];
}
function numberToCategory ( value , buckets ) { if ( ! buckets ) { buckets = [ - 2 , - 2 / 3 , 2 / 3 , 2 ] ; } if ( typeof buckets . length === 'number' && buckets . length > 3 ) { if ( value < buckets [ 0 ] ) return 'very low' ; if ( value < buckets [ 1 ] ) return 'low' ; if ( value < buckets [ 2 ] ) return 'medium' ; if ( value < buckets [ 3 ] ) return 'high' ; if ( value >= buckets [ 3 ] ) return 'very high' ; } var keys = Object . keys ( buckets ) . sort ( function ( a , b ) { return buckets [ a ] - buckets [ b ] ; } ) , l = keys . length ; for ( var i = 0 ; i < l ; i ++ ) { if ( value < buckets [ keys [ i ] ] ) { return keys [ i ] ; } } return keys [ l - 1 ] ; }
Classify a numeric input.

@param {Number} value
The number to classify.
@param {Object/Number[]} [buckets=[-2, -2/3, 2/3, 2]]
An object or numeric array used to classify `value`. If `buckets` is an
array, the returned category will be the first of "very low," "low,"
"medium," and "high," in that order, where the correspondingly ordered
bucket value is higher than the `value` being classified, or "very high"
if all bucket values are smaller than the `value` being classified. If
`buckets` is an object, its values will be sorted, and the returned
category will be the key of the first bucket value that is higher than the
`value` being classified, or the key of the highest bucket value if the
`value` being classified is higher than all the values in `buckets`.

@return {String}
The category into which the numeric input was classified.
Classify a numeric input .