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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Javascript Datastrukturer

bookSortering av Arrayer med sort()-Metoden

sort()

Metoden sort() omarrangerar elementen i en array på plats och returnerar den uppdaterade arrayen. Som standard fungerar sortering bra för strängar men kan ge oväntade resultat med tal.

Standardbeteende vid sortering

Standardbeteendet för sortering fungerar smidigt för arrayer av strängar, men numeriska arrayer kan innebära utmaningar. Följande exempel belyser 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 av tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i den efterföljande illustrationen:

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. Låt oss utforska 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 exempel 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 nyckeleigenskap hos metoden sort()?

2. Hur behandlar sort()-metoden element i sitt standardbeteende?

3. Vad blir utdata i exemplet nedan?

question mark

Vad är en nyckeleigenskap hos metoden sort()?

Select the correct answer

question mark

Hur behandlar sort()-metoden element i sitt standardbeteende?

Select the correct answer

question mark

Vad blir utdata i exemplet nedan?

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 does the compare function work in the sort method?

Can you show more examples of custom sorting, like sorting objects?

bookSortering av Arrayer med sort()-Metoden

Svep för att visa menyn

sort()

Metoden sort() omarrangerar elementen i en array på plats och returnerar den uppdaterade arrayen. Som standard fungerar sortering bra för strängar men kan ge oväntade resultat med tal.

Standardbeteende vid sortering

Standardbeteendet för sortering fungerar smidigt för arrayer av strängar, men numeriska arrayer kan innebära utmaningar. Följande exempel belyser 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 av tal i stigande ordning, vilket verkar enkelt. Dock uppstår nyanser i den efterföljande illustrationen:

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. Låt oss utforska 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 exempel 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 nyckeleigenskap hos metoden sort()?

2. Hur behandlar sort()-metoden element i sitt standardbeteende?

3. Vad blir utdata i exemplet nedan?

question mark

Vad är en nyckeleigenskap hos metoden sort()?

Select the correct answer

question mark

Hur behandlar sort()-metoden element i sitt standardbeteende?

Select the correct answer

question mark

Vad blir utdata i exemplet nedan?

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