javascript - 下划线查找对象值的最小值和最大值

标签 javascript underscore.js

根据教程here ,

A collection can either be an array or an object, an associate array in JavaScript

这是否意味着collection下的所有函数都同样适用于对象文字。 例如,我想根据条件选择值。说,

var obj = {
"1": {id: 1, val: 2},
"2": {id: 2, val: 5},
"3": {id: 3, val: 8},
"4": {id: 4, val: 1}
}

我想找到 val 字段的最大值和最小值。查看 API,我想使用 pluck 获取 val 数组,然后执行 minmax >.

  • 我可以将 pluck 应用于对象吗(如 API 示例所示,它显示了在对象数组中的使用)
  • 有更好的方法吗?

谢谢。

最佳答案

does that mean all the functions under collection is equally applicable to object literals?

Yes .

can I apply pluck to object (as the api example show the use in an array of objects)

你尝试过吗?是的,你可以,但是你会得到一个数组。

is there a better way?

Math.min.apply(null, _.pluck(obj, "val")) (或 _.min(_.pluck(obj, "val"))) 来获取最小就可以了。然而,如果您想获取整个对象(带有 id),您也可以使用 iterator parameter最小/最大:

var lowest = _.min(obj, function(o){return o.val;});

关于javascript - 下划线查找对象值的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851369/

相关文章:

javascript - W3C 地理定位 API 位置数据库

javascript - 浏览器与 Karma Runner 设置依赖断开连接

javascript - 如何通过集合中的数组参数获取模型

backbone.js - 如何检测主干中的 jquery 转义键事件?

javascript - 尝试从数组中仅删除字符串元素但无法向右循环

javascript - 我正在使用 ScrollMagic 和 Greensock,但它在滚动时卡住了

javascript - 如何让一个<div>上的 'setTimeout'自动转到另一个<div>?

javascript - JQuery - 删除不匹配正则表达式的字符

javascript - 下划线clone()和简单的 '='有什么区别?

javascript - 将对象字符串转换为对象元素