假设我有一个如下所示的数组:
var myArray = new Array();
myArray[0] = {ValueA: 10, ValueB:900};
myArray[1] = {ValueA: 50, ValueB:190};
如何选择ValueA
值最小的元素
我以前用过下面的代码来获得数字数组的最大值:
var largest = Math.max.apply(Math, myArray);
但我不确定如何使用此方法来查找对象数组的最大/最小值。有什么建议吗?
发布于 2011-10-14 00:08:37
您可以使用自定义函数对数组进行排序,然后获得第一个和最后一个成员,例如
myArray.sort(function(a, b) {return a.ValueA - b.ValueA;});
最小:
myArray[0].ValueA;
最大的:
myArray[myArray.length - 1].ValueA;
如果你不想修改数组的顺序,请先复制它(对象不会被复制,它们只会被引用)。
var myArray = new Array();
myArray[0] = {ValueA: 10, ValueB:900};
myArray[1] = {ValueA: 50, ValueB:190};
myArray[2] = {ValueA: 25, ValueB:160};
myArray[3] = {ValueA: 5, ValueB:10};
var copy = myArray.slice();
alert(copy.length);
copy.sort(function(a, b) {return a.ValueA - b.ValueA;});
alert(copy[0].ValueA); // 5
alert(copy[copy.length - 1].ValueA); // 50
发布于 2011-10-19 07:43:59
Math.min.apply(Math,myArray.map(function(x){return x.ValueA;}));
https://stackoverflow.com/questions/7761792
复制