Finding smallest value in a javascript array?
Say I have an array like the following:
var myArray = new Array();
myArray[0] = {ValueA: 10, ValueB:900};
myArray[1] = {ValueA: 50, ValueB:190};
How would I select the element that has the smallest value for ValueA
?
I've 开发者_StackOverflow中文版used the following to get the max of arrays of numbers before:
var largest = Math.max.apply(Math, myArray);
but i'm not sure how this method could be used to find the max/min of an array of objects. Suggestions?
You could sort the array using a custom function then get the first and last members, e.g.
myArray.sort(function(a, b) {return a.ValueA - b.ValueA;});
Smallest:
myArray[0].ValueA;
Biggest:
myArray[myArray.length - 1].ValueA;
If you don't want to modify the order of your array, copy it first (the objects wont be copied, they'll just be referenced).
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
Math.min.apply(Math,myArray.map(function(x){return x.ValueA;}));
精彩评论