Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Sortering af Arrays med sort()-Metoden | Avancerede Array-metoder og Transformationer
Javascript Datastrukturer

bookSortering af Arrays med sort()-Metoden

Dette kapitel udforsker detaljerne ved sort()-metoden, herunder dens syntaks, standardadfærd og teknikker til brugerdefineret sortering.

sort()

sort()-metoden ændrer det oprindelige array og giver det en ny rækkefølge.

Centrale egenskaber at huske:

  • Det oprindelige array ændres, så dets elementer får en ny rækkefølge;
  • Metoden returnerer et modificeret array, hvilket muliggør yderligere udforskning;
  • Som standard arrangerer sort()-metoden elementerne i stigende rækkefølge.

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:

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

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:

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 behandler som standard elementer som strenge, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen er 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. Her undersøges tilpasset sortering for både tal og strenge. Grundlæggende syntaks:

array.sort((a, b) => {
  // Callback body
});
  • a betragtes som det første element;
  • b betragtes 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.

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

Sortér strenge

Metoden localeCompare() muliggør alfabetisk sortering og tillader tilpasning for både stigende og faldende rækkefølge.

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. Hvad er en nøglekarakteristik ved sort()-metoden?

2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?

3. I eksemplet nedenfor, hvad vil outputtet være?

question mark

Hvad er en nøglekarakteristik ved sort()-metoden?

Select the correct answer

question mark

Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?

Select the correct answer

question mark

I eksemplet nedenfor, hvad vil outputtet være?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 7

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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 af Arrays med sort()-Metoden

Stryg for at vise menuen

Dette kapitel udforsker detaljerne ved sort()-metoden, herunder dens syntaks, standardadfærd og teknikker til brugerdefineret sortering.

sort()

sort()-metoden ændrer det oprindelige array og giver det en ny rækkefølge.

Centrale egenskaber at huske:

  • Det oprindelige array ændres, så dets elementer får en ny rækkefølge;
  • Metoden returnerer et modificeret array, hvilket muliggør yderligere udforskning;
  • Som standard arrangerer sort()-metoden elementerne i stigende rækkefølge.

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:

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

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:

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 behandler som standard elementer som strenge, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen er 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. Her undersøges tilpasset sortering for både tal og strenge. Grundlæggende syntaks:

array.sort((a, b) => {
  // Callback body
});
  • a betragtes som det første element;
  • b betragtes 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.

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

Sortér strenge

Metoden localeCompare() muliggør alfabetisk sortering og tillader tilpasning for både stigende og faldende rækkefølge.

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. Hvad er en nøglekarakteristik ved sort()-metoden?

2. Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?

3. I eksemplet nedenfor, hvad vil outputtet være?

question mark

Hvad er en nøglekarakteristik ved sort()-metoden?

Select the correct answer

question mark

Hvordan behandler sort()-metoden elementer med standard sorteringsadfærd?

Select the correct answer

question mark

I eksemplet nedenfor, hvad vil outputtet være?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 7
some-alt