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

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

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

Metoden sort() behandler elementer som strenge som standard, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen ligger i 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. Lad os undersøge 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 sammenligningsfunktionen stigende og faldende rækkefølger 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 giver mulighed for tilpasning til 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øgleegenskab ved sort()-metoden?

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

3. Hvad vil output være i eksemplet nedenfor?

question mark

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

Select the correct answer

question mark

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

Select the correct answer

question mark

Hvad vil output være i eksemplet nedenfor?

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

bookSortering 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

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

Metoden sort() behandler elementer som strenge som standard, hvilket kan føre til uventede resultater. For eksempel sorteres 19 før 2, og 25 før 3. Løsningen ligger i 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. Lad os undersøge 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 sammenligningsfunktionen stigende og faldende rækkefølger 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 giver mulighed for tilpasning til 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øgleegenskab ved sort()-metoden?

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

3. Hvad vil output være i eksemplet nedenfor?

question mark

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

Select the correct answer

question mark

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

Select the correct answer

question mark

Hvad vil output være i eksemplet nedenfor?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 7
some-alt