Sortering 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 för sortering
Metoden sort() konverterar elementen till strängar som standard och jämför dem i Unicode-ordning. Därför fungerar den naturligt för strängar, men numeriska arrayer kan ge oväntade resultat om du inte tillhandahåller en jämförelsefunktion.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
För att sortera tal korrekt, använd en jämförelsefunktion:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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 nyckeleigenskap hos metoden sort()?
2. Hur behandlar sort()-metoden element vid standard sortering?
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
Fantastiskt!
Completion betyg förbättrat till 2.27
Sortering 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 för sortering
Metoden sort() konverterar elementen till strängar som standard och jämför dem i Unicode-ordning. Därför fungerar den naturligt för strängar, men numeriska arrayer kan ge oväntade resultat om du inte tillhandahåller en jämförelsefunktion.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
För att sortera tal korrekt, använd en jämförelsefunktion:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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 nyckeleigenskap hos metoden sort()?
2. Hur behandlar sort()-metoden element vid standard sortering?
3. I exemplet nedan, vad kommer att skrivas ut?
Tack för dina kommentarer!