Sortering af Arrays med sort()-Metoden
sort()
Metoden sort() omarrangerer elementerne i et array på stedet og returnerer det opdaterede array. Som standard fungerer sortering godt for strenge, men kan opføre sig uventet med tal.
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
Metoden sort() behandler elementer som strenge som standard, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen ligger i 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. Lad os undersøge 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 sammenligningsfunktionen stigende og faldende rækkefølger 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 giver mulighed for tilpasning til 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øgleegenskab ved sort()-metoden?
2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?
3. Hvad vil output være i eksemplet nedenfor?
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 does the compare function work in the sort method?
Can you show more examples of custom sorting, like sorting objects?
Fantastisk!
Completion rate forbedret til 2.27
Sortering af Arrays med sort()-Metoden
Stryg for at vise menuen
sort()
Metoden sort() omarrangerer elementerne i et array på stedet og returnerer det opdaterede array. Som standard fungerer sortering godt for strenge, men kan opføre sig uventet med tal.
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
Metoden sort() behandler elementer som strenge som standard, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen ligger i 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. Lad os undersøge 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 sammenligningsfunktionen stigende og faldende rækkefølger 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 giver mulighed for tilpasning til 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øgleegenskab ved sort()-metoden?
2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?
3. Hvad vil output være i eksemplet nedenfor?
Tak for dine kommentarer!