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
Metoden sort() konverterer som standard elementer til strenge og sammenligner dem i Unicode-rækkefølge. Derfor fungerer den naturligt for strenge, men numeriske arrays kan give uventede resultater, medmindre du angiver en sammenligningsfunktion.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
For at sortere tal korrekt, anvendes en sammenligningsfunktion:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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 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 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 i sin 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
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
Metoden sort() konverterer som standard elementer til strenge og sammenligner dem i Unicode-rækkefølge. Derfor fungerer den naturligt for strenge, men numeriske arrays kan give uventede resultater, medmindre du angiver en sammenligningsfunktion.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
For at sortere tal korrekt, anvendes en sammenligningsfunktion:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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 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 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 i sin standard sorteringsadfærd?
3. I eksemplet nedenfor, hvad vil outputtet være?
Tak for dine kommentarer!