我是Underscore的新手。 我正在使用下面的函数来获取包含值的计数的对象,并且工作正常。
_.countBy(data, function(value) {
if( value[1] <10 ) return '0' ;
if( value[1] >99 && value[1] <= 999 ) return '1';
if( value[1] >1000 ) return '2';
});
此_.countBy
函数的输出为{1 : 23, 2: 4}
。
因此,使用_.max
函数,我可以获得值23
但是我想获得其最大值返回的密钥(即1)。
我该怎么做?
由于
答案 0 :(得分:1)
虽然这是一个非常古老的问题,但您也可以链接您的解决方案
var occurrenceCount = {1:15, 2:3, 3: 45, 4: 12};
var max = _.chain(occurrenceCount).max().value();
这将为您提供最大值,然后您可以反转以找到密钥
_.chain(occurrenceCount).invert().value()[max];
答案 1 :(得分:0)
最后由于this回答,我可以使用以下代码获取最大值的密钥。
var occurrenceCount = _.countBy(data, function(value) {
if( value[1] <10 ) return '0' ;
if( value[1] >99 && value[1] <= 999 ) return '1';
if( value[1] >1000 ) return '2';
});
var maxValue = _.max(occurrenceCount);
var key= _.invert(occurrenceCount)[maxValue];
为1
获取{1 : 23, 2: 4}
密钥。
答案 2 :(得分:0)
就这么简单。
var occurrenceCount = {1:15, 2:3, 3: 45, 4: 12};
var result = _.max(_.pairs(occurrenceCount), _.last);
<强>输出强>
[ '3', 45 ]
如果您只想要密钥,只需执行
即可var result = _.first(_.max(_.pairs(occurrenceCount), _.last));
<强>输出强>
3