根据教程here,
集合可以是数组或对象,也可以是关联数组 在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
数组,然后执行min
和max
。
感谢。
答案 0 :(得分:55)
是否意味着集合下的所有函数同样适用于对象文字?
我可以将pluck应用于object(因为api示例显示了在对象数组中的使用)
你试过吗?是的,你可以,但你会得到一个阵列。
获取最小值的有更好的方法吗?
Math.min.apply(null, _.pluck(obj, "val"))
(或_.min(_.pluck(obj, "val"))
)很好。然而,如果你想获得整个对象(带有id),你也可以使用最小/最大的iterator
parameter:
var lowest = _.min(obj, function(o){return o.val;});
答案 1 :(得分:0)
另一种方法是这样做,如果你想要返回所有具有高值的多行,那就很好了:
_.where(obj, {score: _.max(_.pluck(obj, 'value'))});
答案 2 :(得分:-1)
不需要花哨。只需使用map
函数创建目标值数组,然后使用_min
查找最小值。
标准强>
var minimum = _.min(data.map(function(rec) {return rec.val}))
<强> ES6 强>
let minimum = _.min(data.map((rec) => {return rec.val}))