javascript - 使用 Underscore 从集合中获取最大和最小键

标签 javascript underscore.js

如何使用 Underscore 从这种集合中获取最大和最小键?似乎是一件容易的事,但我没有找到快速的解决方案。

{
    "2013-06-26":839,
    "2013-06-25":50,
    "2013-06-22":25,
    "2013-05-14":546,
    "2013-03-11":20
}

最佳答案

不幸的是,_.min 和 _.max 只支持数字,所以我们不能将它们用于您的字符串键。幸运的是,您的日期采用可按字符串排序的格式。

var minkey, maxkey;
_.each(obj, function(value, key) {
   if (minkey == null || key < minkey) { minkey = key; }
});
_.each(obj, function(value, key) {
   if (maxkey == null || key > maxkey) { maxkey = key; }
});

现在,如果您真的想要最大/最小值,那么就是这个。幸运的是,您的值是数字,因此它会更容易一些:

var keys = _.keys(obj);
function itemgetter(key) { return obj[key]; }
minkey = _.min(keys, itemgetter);
maxkey = _.max(keys, itemgetter);

关于javascript - 使用 Underscore 从集合中获取最大和最小键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326705/

相关文章:

javascript - 如何从数组中排除特定的 id?

javascript - Javascript 中的 (function(global){}(this)、构造函数和类之间有什么区别?

javascript - 谷歌地图标记上的慢循环

javascript - 在下划线中使用去抖功能

javascript - 围绕索引重新排序数组

javascript - Underscore 的类似函数 : _. 包含 vs. _.some 和 _.map vs _.each

javascript - 命名函数和匿名函数有不同的效果

javascript - 如何翻译和包装 d3.js 世界地图 2D 投影

javascript - jquery动画 Accordion 标题

javascript - backbone.js - View 中的 Controller 属性