In TypeScript or JavaScript, sorting an array of objects is made easy in ES6/ES2015.
Given an array of objects named people
, sort them based on different criteria.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| const people = [
{
"id": 5,
"firstName": "Buzz",
"lastName": "Lightyear2"
},
{
"id": 2,
"firstName": "Buzz",
"lastName": "Lightyear"
},
{
"id": 1,
"firstName": "Woody",
"lastName": "Pride"
},
{
"id": 3,
"firstName": "Potato",
"lastName": "Head"
},
{
"id": 4,
"firstName": "Slinky",
"lastName": "Dog"
}
];
|
Sorting an array of objects by a single key
Sort ascending by number
1
2
| // sort ascending by id
people.sort((a, b) => a.id - b.id)
|
Sort ascending by string
1
2
| // sort ascending by firstName
people.sort((a, b) => a.firstName.localeCompare(b.firstName))
|
Sort descending by number
1
2
| // sort descending by id
people.sort((a, b) => b.id - a.id)
|
Sort descending by string
1
2
| // sort descending by firstName
people.sort((a, b) => b.firstName.localeCompare(a.firstName))
|
Sorting array of objects by multiple keys
If a secondary key is needed for additional sorting, the same sort
method can be used.
1
2
3
4
| people.sort(
(a, b) => a.firstName.localeCompare(b.firstName) ||
a.lastName.localeCompare(b.lastName)
);
|
the or logical operator ||
chains multiple sort options.