Here's a simple unsorted array of JSON objects:
var someArray = [
{
"id": 2,
"name": "gamma"
},
{
"id": 3,
"name": "alpha"
},
{
"id": 1,
"name": "beta"
}
];
And a generic sorting function:
/**
* Generic array sorting
*
* @param property
* @returns {Function}
*/
var sortByProperty = function (property) {
return function (x, y) {
return ((x[property] === y[property]) ? 0 : ((x[property] > y[property]) ? 1 : -1));
};
};
Calling this...
someArray.sort(sortByProperty('id'));
...produces an array sorted by the id property:
[
{
"id": 1,
"name": "beta"
},
{
"id": 2,
"name": "gamma"
},
{
"id": 3,
"name": "alpha"
}
]
Calling this...
someArray.sort(sortByProperty('name'));
...produces an array sorted by the name property:
[
{
"id": 3,
"name": "alpha"
},
{
"id": 1,
"name": "beta"
},
{
"id": 2,
"name": "gamma"
}
]
Simple.