强调查找对象值的最小值和最大值

bsr*_*bsr 23 javascript underscore.js

根据这里的教程,

集合可以是数组或对象,也可以是JavaScript中的关联数组

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

var obj = {
"1": {id: 1, val: 2},
"2": {id: 2, val: 5},
"3": {id: 3, val: 8},
"4": {id: 4, val: 1}
}
Run Code Online (Sandbox Code Playgroud)

我想找到val字段的最大值和最小值.看看API,我想pluck用来获取一个数组val,然后做minmax.

  • 我可以将pluck应用于对象(因为api示例显示在对象数组中使用)
  • 有没有更好的办法?

谢谢.

Ber*_*rgi 56

这是否意味着收集下的所有函数同样适用于对象文字?

是的.

我可以将pluck应用于对象(因为api示例显示在对象数组中使用)

你试过吗?是的,你可以,但你会得到一个阵列.

有没有更好的办法?

Math.min.apply(null, _.pluck(obj, "val"))(或_.min(_.pluck(obj, "val")))获得最低价值是好的.但是,如果你想获得整个对象(带有id),你也可以使用min/max iterator参数:

var lowest = _.min(obj, function(o){return o.val;});
Run Code Online (Sandbox Code Playgroud)