将_.countBy与范围一起使用

时间:2015-01-14 00:38:18

标签: javascript underscore.js

我有一个FICO分数列表,我想根据它们的值进行分组,组从0-620开始,然后是620-640,每次增加20。

应返回的是每组中的值计数 - 0-620,620-640,640-660,660-680等,最高可达780-800。

我目前正在使用_.countBy,但它会返回每个唯一号码的计数,而不是每个群组。

var counts = _.countBy(ficos, function(x) { return x }); 
//Counts should be {620: 22, 625: 19, 655: 24, 670: 20, 690: 30, 720: 29, 734: 17, 760: 21, 790: 18}

有没有办法利用_.countBy或其他功能?如果可能的话,我试图避免冗长的if声明。

1 个答案:

答案 0 :(得分:1)

然后返回适当的组:

function (x) {
    if (x < 620) return '<620';
    if (x >= 800) return '>800';

    var lower = Math.floor(x / 20) * 20,
        higher = lower + 20;
    return lower + '-' + higher;
}