I am trying to sort a feed that I have called in using Jquery.ajax. I'm trying to sort it by the number of values in an array within the feed.
For example, in this feed, I want to sort it by # of NFL teams in descending, so it would be re-sorted to California, New Jersey, Massachusetts:
[
{
"title":"New Jersey",
"NFLteams":[
{
"Name":"Jets",
"Conference":"AFC",
},
{
"Name":"Giants",
"Conference":"NFC",
}
]
},
{
"title":"Massachusetts",
"NFLteams":[
{
"Name":"Patriots",
"Conference":"AFC",
}
]
},
{
"title":"California",
"NFLteams":[
{
"Name":"Raiders",
"Conference":"AFC",
},
{
"Name":"49ers",
"Conference":"NFC",
},
{
"Name":"Chargers",
"Conference":"AFC",
}
]
}
]
I've tried code like this (from this thread Sorting an array of JavaScript objects), but it doesn't work (even if I make it NFLteams.length):
var sort_by = function(field, reverse, primer){
var key = function (x) {return primer ? primer(x[field]) : x[field]};
return function (a,b) {
var A = key(a), B = key(b);
return ( (A < B) ? -1 : ((A > B) ? 1 : 0) ) * [-1,1][+!!reverse];
}
}
data.sort(sort_by('NFLteams', false, function(a){return a.toUpperCase()}))
Any suggestions on how I can sort by the # of values in the array? Thanks to anyone who can help or point me in the right direction.