I have an array of object literals like this:
var myArr = [];
myArr[0] = {
'score': 4,
'name': 'foo'
}
myArr[1] = {
'score': 1,
'name': 'bar'
}
myArr[2] = {
'score': 3,
'name': 'foobar'
}
How would I sort the array so it ascends by the ‘score’ parameter such that it would change to:
myArr[0] = {
'score': 1,
'name': 'bar'
}
myArr[1] = {
'score': 3,
'name': 'foobar'
}
myArr[2] = {
'score': 4,
'name': 'foo'
}
Thanks in advance.
Try
myArr.sort(function (a, b) {return a.score - b.score});The way the array elements are sorted depends on what number the function passed in returns:
< 0(negative number):agoes ahead ofb> 0(positive number):bgoes ahead ofa0: In this cases the two numbers will be adjacent in the sorted list. However, the sort is not guaranteed to be stable: the order ofaandbrelative to each other may change.