将 _.countBy 与范围一起使用
Using _.countBy with ranges
我有一个 FICO 分数列表,我想根据它们的值进行分组,组从 0-620 开始,然后是 620-640,每次递增 20。
它应该 return 是每个组中值的计数 -- 0-620、620-640、640-660、660-680 等,直到 780-800。
我目前正在使用 _.countBy
,但它 return 是对每个唯一数字的计数,而不是对每个组的计数。
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
语句。
所以return相应的组然后:
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;
}
我有一个 FICO 分数列表,我想根据它们的值进行分组,组从 0-620 开始,然后是 620-640,每次递增 20。
它应该 return 是每个组中值的计数 -- 0-620、620-640、640-660、660-680 等,直到 780-800。
我目前正在使用 _.countBy
,但它 return 是对每个唯一数字的计数,而不是对每个组的计数。
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
语句。
所以return相应的组然后:
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;
}