JavaScript Array sort() Definition
The sort () method sorts the items in an array. This order (if we do not specify a function) is in the form of increasing order.
Syntax:
array.sort(arr)
arr: Defines the sort order in the array.
Let’s try to understand the logic with a small example.
let names = ["rick", "oliver", "bob", "sasha"];
let row = names.sort();
console.log(row)
0:”bob”
1:”oliver”
2:”rick”
3:”sasha”
or
[“bob”,”oliver”,”rick”,”sasha”]
Sorting as shown in the example was according to the alphabet.
It is not right to use the sort () method for numbers. For example: When 10 and 20 numbers are listed more than 1 to 2, 10 is greater than 20. Therefore, the sort () method will produce the wrong result when sorting the numbers.
let numbers = [2,4,1,3];
let numbersRow = numbers.sort();
console.log(numbersRow)
[1, 2, 3, 4]
JavaScript Array sort() Examples
Example 1
This code can be written to sort numbers with the sort () function:
let numbers = [10, 20, 30, 40];
let arr = numbers.sort(function (x, y) { return y - x })
console.log(arr)
output:
[40, 30, 20, 10]
Example 2
let names = [
{name:"barry",born:2000},
{name:"alex", born: 2003 },
{name:"alice",born:2005}
]
printRow();
function row() {
names.sort(function (x, y) { return x.born - y.born });
printRow();
}
function printRow() {
console.log(
names[0].name + " " + names[0].born + "/" +
names[1].name + " " + names[1].born + "/" +
names[2].name + " " + names[2].born
)
}
output:
barry 2000 / alex 2003 / alice 2005
Example 3
let names = [
{ name: "edward", age: 30 },
{ name: "alex", age: 25 },
{ name: "oliver", age: 32 },
{ name: "bob", age: 42 }
]
let ageRow = names.sort(function (x, y) {
return x.age - y.age;
})
let namesRow = names.sort(function (x, y) {
let nameX = x.name.toUpperCase;
let nameY = y.name.toUpperCase;
if (nameX < nameY) { return -1 }
if (nameX > nameY) { return 1 }
return 0;
})
console.log(ageRow)
console.log(namesRow)
output:
0: {name: “alex”, age: 25}
1: {name: “edward”, age: 30}
2: {name: “oliver”, age: 32}
3: {name: “bob”, age: 42}
0: {name: “alex”, age: 25}
1: {name: “edward”, age: 30}
2: {name: “oliver”, age: 32}
3: {name: “bob”, age: 42}
| Chrome | 1 |
| Edge | yes |
| Firefox | 1 |
| Internet Explorer | 5.5 |
| Opera | yes |
| Safari | yes |
| Android webview | yes |
| Chrome for Android | yes |
| Edge mobile | yes |
| Firefox for Android | 4 |
| Opera Android | yes |