Sortering af Arrays med sort()-Metoden
Dette kapitel udforsker detaljerne ved sort()-metoden, herunder dens syntaks, standardadfærd og teknikker til brugerdefineret sortering.
sort()
sort()-metoden ændrer det oprindelige array og giver det en ny rækkefølge.
Centrale egenskaber at huske:
- Det oprindelige array ændres, så dets elementer får en ny rækkefølge;
- Metoden returnerer et modificeret array, hvilket muliggør yderligere udforskning;
- Som standard arrangerer sort()-metoden elementerne i stigende rækkefølge.
Standard sorteringsadfærd
Standard sortering fungerer problemfrit for arrays af strenge, men numeriske arrays kan give udfordringer. Lad os gennemgå eksempler for at belyse denne adfærd:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
I dette eksempel sorteres arrayet af tal i stigende rækkefølge, hvilket umiddelbart virker ligetil. Dog opstår der nuancer i den efterfølgende illustration:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
sort()-metoden behandler som standard elementer som strenge, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen er at tilpasse sorteringsprocessen.
Tilpassede sorteringsrækkefølger
For at tilpasse sorteringen til specifikke behov anvendes en callback-funktion. Denne funktion, ofte kaldet en sammenligningsfunktion, bestemmer sorteringslogikken. Her undersøges tilpasset sortering for både tal og strenge. Grundlæggende syntaks:
array.sort((a, b) => {
// Callback body
});
abetragtes som det første element;bbetragtes som det andet element.
Sortér tal
I dette tilfælde bestemmer compare-funktionen stigende og faldende rækkefølge baseret på forholdet mellem elementerne a og b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Sortér strenge
Metoden localeCompare() muliggør alfabetisk sortering og tillader tilpasning for både stigende og faldende rækkefølge.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. Hvad er en nøglekarakteristik ved sort()-metoden?
2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?
3. I eksemplet nedenfor, hvad vil outputtet være?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain why the default sort method treats numbers as strings?
How do I use a custom compare function for more complex sorting?
Can you show more examples of sorting arrays with objects?
Awesome!
Completion rate improved to 2.27
Sortering af Arrays med sort()-Metoden
Stryg for at vise menuen
Dette kapitel udforsker detaljerne ved sort()-metoden, herunder dens syntaks, standardadfærd og teknikker til brugerdefineret sortering.
sort()
sort()-metoden ændrer det oprindelige array og giver det en ny rækkefølge.
Centrale egenskaber at huske:
- Det oprindelige array ændres, så dets elementer får en ny rækkefølge;
- Metoden returnerer et modificeret array, hvilket muliggør yderligere udforskning;
- Som standard arrangerer sort()-metoden elementerne i stigende rækkefølge.
Standard sorteringsadfærd
Standard sortering fungerer problemfrit for arrays af strenge, men numeriske arrays kan give udfordringer. Lad os gennemgå eksempler for at belyse denne adfærd:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
I dette eksempel sorteres arrayet af tal i stigende rækkefølge, hvilket umiddelbart virker ligetil. Dog opstår der nuancer i den efterfølgende illustration:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
sort()-metoden behandler som standard elementer som strenge, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen er at tilpasse sorteringsprocessen.
Tilpassede sorteringsrækkefølger
For at tilpasse sorteringen til specifikke behov anvendes en callback-funktion. Denne funktion, ofte kaldet en sammenligningsfunktion, bestemmer sorteringslogikken. Her undersøges tilpasset sortering for både tal og strenge. Grundlæggende syntaks:
array.sort((a, b) => {
// Callback body
});
abetragtes som det første element;bbetragtes som det andet element.
Sortér tal
I dette tilfælde bestemmer compare-funktionen stigende og faldende rækkefølge baseret på forholdet mellem elementerne a og b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Sortér strenge
Metoden localeCompare() muliggør alfabetisk sortering og tillader tilpasning for både stigende og faldende rækkefølge.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. Hvad er en nøglekarakteristik ved sort()-metoden?
2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?
3. I eksemplet nedenfor, hvad vil outputtet være?
Tak for dine kommentarer!