Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 如何在下划线中获取max函数返回值的键_Javascript_Underscore.js - Fatal编程技术网

Javascript 如何在下划线中获取max函数返回值的键

Javascript 如何在下划线中获取max函数返回值的键,javascript,underscore.js,Javascript,Underscore.js,我是下划线的新手。 我正在使用下面的函数来获取包含已发生值计数的对象,该对象工作正常 _.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(data, function(value) {
             if( value[1] <10 ) return '0' ;
             if( value[1] >99 && value[1] <= 999 ) return '1';
             if( value[1] >1000 ) return '2';

          });
\u.countBy(数据、函数(值){
if(值[1]99&&value[1]1000)返回“2”;
});
这个
.countBy
函数给我的输出是
{1:23,2:4}

因此,使用
\uu0.max
函数,我可以得到23的值

但是我想得到它的键(它是1),它返回了最大值

我该怎么做

谢谢

最后,由于答案,我能够使用下面的代码获得最大值的键

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];
var-occurrenceCount=\uu.countBy(数据、函数(值){
if(值[1]99&&value[1]1000)返回“2”;
});
var maxValue=u0.max(发生计数);
var键=u0.invert(发生计数)[maxValue];

因此,为
{1:23,2:4}
获取键为
1
,就这么简单

var occurrenceCount = {1:15, 2:3, 3: 45, 4: 12};
var result = _.max(_.pairs(occurrenceCount), _.last);
输出

[ '3', 45 ]
3
如果你只想要钥匙,你可以简单地做

var result = _.first(_.max(_.pairs(occurrenceCount), _.last));
输出

[ '3', 45 ]
3

虽然这是一个非常古老的问题,但您也可以链接您的解决方案

var occurrenceCount = {1:15, 2:3, 3: 45, 4: 12};
var max = _.chain(occurrenceCount).max().value();
这将为您提供最大值,然后您可以反转以找到关键点

_.chain(occurrenceCount).invert().value()[max];

uxof(值,xof.max(值))
?这不是最有效的,但它会起作用。这就是我现在要尝试的,我看到了你的评论:)如果有多个键具有相同的最大值,这将不起作用。例如,如果countBy返回{1:23,2:4,0:23},那么invert将返回{4:2,23,0}。使用_filter查看备选答案。@Pratik如果可以解决您的问题,请接受答案。谢谢