Sortering av Arrayer med sort()-Metoden
Detta kapitel utforskar detaljerna kring metoden sort(), inklusive dess syntax, standardbeteenden och anpassade sorteringstekniker.
sort()
Metoden sort() modifierar den ursprungliga arrayen och ger den en ny ordning.
Viktiga egenskaper att komma ihåg:
- Den ursprungliga arrayen förändras och dess element får en ny ordning;
- Metoden returnerar en modifierad array, vilket möjliggör vidare bearbetning;
- Som standard ordnar sort()-metoden elementen i stigande ordning.
Standardbeteende för sortering
Standardbeteendet för sortering fungerar smidigt för strängarrayer, men numeriska arrayer kan innebära utmaningar. Låt oss gå igenom exempel för att belysa detta beteende:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
I detta exempel sorteras arrayen med tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i nästa 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 behandlar element som strängar som standard, vilket kan leda till oväntade resultat. Till exempel sorteras 19 före 2, och 25 före 3. Lösningen är att anpassa sorteringsprocessen.
Anpassade sorteringsordningar
För att anpassa sorteringen efter specifika behov används en callback-funktion. Denna funktion, ofta kallad jämförelsefunktion, bestämmer sorteringslogiken. Här undersöks anpassad sortering för både tal och strängar. Grundläggande syntax:
array.sort((a, b) => {
// Callback body
});
abetraktas som det första elementet;bbetraktas som det andra elementet.
Sortera tal
I detta fall bestämmer jämförelsefunktionen stigande och fallande ordning baserat på relationen mellan elementen a och 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
Sortera strängar
Metoden localeCompare() möjliggör alfabetisk sortering och tillåter anpassning för både stigande och fallande ordning.
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. Vad är en nyckelkaraktäristik hos metoden sort()?
2. Hur behandlar metoden sort() element vid standard sorteringsbeteende?
3. I exemplet nedan, vad kommer att skrivas ut?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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 av Arrayer med sort()-Metoden
Svep för att visa menyn
Detta kapitel utforskar detaljerna kring metoden sort(), inklusive dess syntax, standardbeteenden och anpassade sorteringstekniker.
sort()
Metoden sort() modifierar den ursprungliga arrayen och ger den en ny ordning.
Viktiga egenskaper att komma ihåg:
- Den ursprungliga arrayen förändras och dess element får en ny ordning;
- Metoden returnerar en modifierad array, vilket möjliggör vidare bearbetning;
- Som standard ordnar sort()-metoden elementen i stigande ordning.
Standardbeteende för sortering
Standardbeteendet för sortering fungerar smidigt för strängarrayer, men numeriska arrayer kan innebära utmaningar. Låt oss gå igenom exempel för att belysa detta beteende:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
I detta exempel sorteras arrayen med tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i nästa 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 behandlar element som strängar som standard, vilket kan leda till oväntade resultat. Till exempel sorteras 19 före 2, och 25 före 3. Lösningen är att anpassa sorteringsprocessen.
Anpassade sorteringsordningar
För att anpassa sorteringen efter specifika behov används en callback-funktion. Denna funktion, ofta kallad jämförelsefunktion, bestämmer sorteringslogiken. Här undersöks anpassad sortering för både tal och strängar. Grundläggande syntax:
array.sort((a, b) => {
// Callback body
});
abetraktas som det första elementet;bbetraktas som det andra elementet.
Sortera tal
I detta fall bestämmer jämförelsefunktionen stigande och fallande ordning baserat på relationen mellan elementen a och 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
Sortera strängar
Metoden localeCompare() möjliggör alfabetisk sortering och tillåter anpassning för både stigande och fallande ordning.
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. Vad är en nyckelkaraktäristik hos metoden sort()?
2. Hur behandlar metoden sort() element vid standard sorteringsbeteende?
3. I exemplet nedan, vad kommer att skrivas ut?
Tack för dina kommentarer!