Rijstkoek Rijstkoek - 10 months ago 54
jQuery Question

Find index of object in array with highest value in property

I've got an array with objects:

var articles = [];
var article = {};

Simple loop that iterates x times {
article.text = "foobar";
article.color = "red";
article.number = 5;

I have no idea how many objects there will be in my array but they will all have different values for their properties, I just gave some examples here.


I need to find a way to go through all these objects and retrieve the index of the object that has the highest value in article.number. How can I achieve this? I may only use javascript, jQuery, etc.. no other languages.

I'm guessing this will involve using both $.grep and Math.max but I'm stuck, I've never worked with $.grep before.

In short:

var highestNumber = index of object where article.number is highest


There are many ways to do this, Math.max(), $.grep and $.map being a few, but an easy and readable method that should be understandable is to just iterate the object, and check if the value is higher than a variable, if it is, set the variable to the higher number :

var highest = 0;

$.each(articles, function(key, article) {

    if (article.number > highest) highest = article.number;


// highest now contains the highest number