开发者

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;}));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜