Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Sortering av Arrayer med sort()-Metoden | Avancerade Arraymetoder och Transformationer
Javascript Datastrukturer

bookSortering 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:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

I detta exempel sorteras arrayen med tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i nästa illustration:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

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
});
  • a betraktas som det första elementet;
  • b betraktas 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.

1234567
const 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
copy

Sortera strängar

Metoden localeCompare() möjliggör alfabetisk sortering och tillåter anpassning för både stigande och fallande ordning.

1234567
const 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
copy

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?

question mark

Vad är en nyckelkaraktäristik hos metoden sort()?

Select the correct answer

question mark

Hur behandlar metoden sort() element vid standard sorteringsbeteende?

Select the correct answer

question mark

I exemplet nedan, vad kommer att skrivas ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookSortering 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:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

I detta exempel sorteras arrayen med tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i nästa illustration:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

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
});
  • a betraktas som det första elementet;
  • b betraktas 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.

1234567
const 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
copy

Sortera strängar

Metoden localeCompare() möjliggör alfabetisk sortering och tillåter anpassning för både stigande och fallande ordning.

1234567
const 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
copy

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?

question mark

Vad är en nyckelkaraktäristik hos metoden sort()?

Select the correct answer

question mark

Hur behandlar metoden sort() element vid standard sorteringsbeteende?

Select the correct answer

question mark

I exemplet nedan, vad kommer att skrivas ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 7
some-alt