【发布时间】:2016-04-11 04:30:07
【问题描述】:
我有一个 JSON 对象,它是一个对象数组,我想在其中找到给定属性名称不为空的最低值的对象。
_.min(arr, function(o){
return o[prop];
});
是我最后一次尝试的,但似乎没有任何选择可以工作或为我提供我想要的。有没有一种干净的方法可以做到这一点?
【问题讨论】:
-
Math.min.apply(0, _.map(arr, function(o){ return o[prop];})); -
Math.min.apply(0, _.pluck(arr, prop)) -
Math.min.apply 将返回 NaN 如果所有值都不是数字 var arr = [{lol:0},{lol:'lol'}]; Math.min.apply(数学,arr); // NaN
-
@KamijouTouma:这就是为什么你需要先提取数字......你也可以
.filter(Number.isFinite)来防止意外的NaN:[1/0,1,0,-0,Infinity].filter(Number.isFinite)所以......Math.min.apply(0, _.pluck(arr, prop).filter(Number.isFinite))是您正在寻找的机器人:安全快速。
标签: javascript arrays object underscore.js