从 JavaScript 对象数组中获取最大值和最小值的最佳方法是什么?
给定:
var a = [{x:1,y:0},{x:-1,y:10},{x:12,y:20},{x:61,y:10}];
var minX = Infinity, maxX = -Infinity;
for( var x in a ){
if( minX > a[x].x )
minX = a[x].x;
if( maxX < a[x].x )
maxX = a[x].x;
}
看起来有点笨拙。有没有更优雅的方式,也许使用 dojo?
最佳答案
它不会更有效率,但只是为了咧嘴一笑:
var minX = Math.min.apply(Math, a.map(function(val) { return val.x; }));
var maxX = Math.max.apply(Math, a.map(function(val) { return val.x; }));
或者如果您愿意使用三行代码:
var xVals = a.map(function(val) { return val.x; });
var minX = Math.min.apply(Math, xVals);
var maxX = Math.max.apply(Math, xVals);
关于javascript - 从 JavaScript 数组中获取对象值的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798568/