Metoden sort
Metoden sort udfører sortering af et array
i leksikografisk rækkefølge og returnerer det allerede
ændrede array. Som en valgfri parameter
kan man angive sin egen funktion til sortering.
Syntaks
javascriptarray.sort([funktion]);
Eksempel
Lad os sortere et array:
javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Resultatet af udførelse af koden:
javascript['a', 'b', 'c', 'd']
Eksempel
Lad os sortere et array med tal:
javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());
Resultatet af udførelse af koden:
javascript[1, 2, 4, 7]
Eksempel
Lad os tilføje tal til arrayet og sortere det:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Som et resultat af udførelse af koden vil vi se, at tallene ikke er placeret i stigende rækkefølge, men i leksikografisk rækkefølge, dvs. tallene sammenlignes med hinanden som strenge. Ved sammenligning tages der hensyn til hvert tegn, om koden for det første tegn er større end koden for det næste osv. Resultatet:
javascript[1, 111, 123, 2, 4, 7]
Eksempel
Lad os nu sortere arrayet
ved hjælp af en funktion, hvor vi angiver betingelsen -
hvis den første parameter er større end den anden, så ombyt dem
(for dette i return angiv et hvilket som helst positivt tal).
I det modsatte tilfælde er ombytning ikke nødvendig, og vi angiver
0 eller et hvilket som helst negativt tal:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Resultatet af udførelse af koden:
javascript[1, 2, 4, 7, 111, 123]
Eksempel
Lad os for nemheds skynd forkorte koden i vores funktion fra det foregående eksempel:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Resultatet af udførelse af koden:
javascript[1, 2, 4, 7, 111, 123]
Eksempel
Og lad os nu ved hjælp af en funktion sortere arrayet i faldende rækkefølge:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Resultatet af udførelse af koden:
javascript[123, 111, 7, 4, 2, 1]
Eksempel
Lad os sortere et array af objekter
efter nøglen 'one' i stigende rækkefølge:
javascriptlet arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.one - b.one;
});
console.log(arr);
Resultatet af udførelse af koden:
javascript[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Eksempel
Og lad os nu sortere arrayet af objekter
efter nøglen 'two':
javascriptlet arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.two - b.two;
});
console.log(arr);
Resultatet af udførelse af koden:
javascript[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Eksempel
Lad os tjekke om arrayet er ændret efter
anvendelse af metoden sort:
javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Resultatet af udførelse af koden:
javascript['a', 'b', 'c', 'd']
Se også
-
metoden
filter,
som gør det muligt at filtrere elementer i et array