Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用带范围的u.countBy_Javascript_Underscore.js - Fatal编程技术网

Javascript 使用带范围的u.countBy

Javascript 使用带范围的u.countBy,javascript,underscore.js,Javascript,Underscore.js,我有一个FICO分数列表,我想根据它们的值进行分组,分组从0-620开始,然后是620-640,每次递增20 它应该返回每个组中的值计数——0-620、620-640、640-660、660-680,等等,直到780-800 我目前正在使用,但它会返回每个唯一数字的计数,而不是每个组的计数 var counts = _.countBy(ficos, function(x) { return x }); //Counts should be {620: 22, 625: 19, 655: 24,

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

它应该返回每个组中的值计数——0-620、620-640、640-660、660-680,等等,直到780-800

我目前正在使用,但它会返回每个唯一数字的计数,而不是每个组的计数

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
语句。

因此,请返回相应的组,然后:

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;
}
函数(x){
如果(x<620)返回“800”;
var下限=数学楼层(x/20)*20,
较高=较低+20;
返回较低的+'-'+较高的位置;
}

您应该添加您正在使用的示例数据,以便我们可以对其进行测试。我感到困惑——OP询问如何计算特定组中的哪些数据,而您说。。。什么?我不明白。@QPaysTaxes我提供了一个函数,可以根据需要将输入的数字分组到特定的组中。不,您提供了一个函数,可以给出给定数字的组。要求是你对他们进行分组。从结果中构建一个列表,然后使用
。.countBy
将满足要求,但仅此一项不能满足要求。@QPaysTaxes:这是正确的-我提供了一个将输入分类到特定组的函数。你对我的回答有什么问题吗?我就是不知道你的目的是什么。很明显,这只是
的一个参数。countBy
,因为这就是问题所在。“使用u.countBy”从结果中构建一个列表——这是不正确的,您不需要另外构建一个列表:这个函数+
\uu.countBy
是完整的解决方案。但这并不解析列表。这将解析列表中的单个数字——您应该提供包装器代码,以便它实际执行OP想要的操作。当然,除非您可以在Javascript中对数组执行整数运算。此外,在提供答案时,答案应该是完整的——不要遗漏细节,无论它们对你来说多么微不足道。你的答案应该是有效的,不需要额外的代码。