How to Sort Array of Objects Based on Object Key in JavaScript
How can we sort an array of objects based on the object key in JavaScript?
Suppose we have an array of objects arrOfObjs
.
const arrOfObjs = [
{ id: 1, count, 1 },
{ id: 2, count, 3 },
{ id: 3, count, 5 },
{ id: 4, count, 7 },
{ id: 5, count, 9 }
]
How can we sort this array based on the count
field?
Sort objects using sort()
We can use sort()
to sort an array.
If we run arr.sort()
without any arguments, each array element will be converted to a string and then sorted based on the Unicode encoding standard.
We can override the comparator function to define our own sort order.
arrOfObjs.sort((a, b) => a.count - b.count);
Note that
sort()
will sort the array in place. No copy will be made.
Sort ascending or descending
The comparator function’s job is to determine which of the two elements passed in the arguments will come first.
To do this, it returns an integer.
- Negative: first argument comes first
- Positive: second argument comes first
- Zero: arguments are equal
In order to sort in ascending order, we’ll want to subtract the second argument from the first.
// Ascending order
arrOfObjs.sort((a, b) => a.count - b.count);
In order to sort in descending order, we’ll want to subtract the first argument from the second.
// Descending order
arrOfObjs.sort((a, b) => b.count - a.count);