Metoda Sort
Część sekcji Logika i przepływ programu ścieżki JavaScript w Coddy. Lekcja 57 z 65.
Metoda sort() umożliwia sortowanie elementów tablicy w miejscu i zwraca posortowaną tablicę. Domyślnie sortuje elementy jako ciągi znaków w porządku alfabetycznym i rosnącym.
Oto podstawowa składnia:
array.sort([compareFunction])Przykład bez użycia funkcji porównującej:
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']OSTRZEŻENIE: Liczby nie są sortowane zgodnie z oczekiwaniami bez funkcji porównującej:
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (nieprawidłowe sortowanie liczbowe)Aby poprawnie sortować liczby lub zaimplementować własne sortowanie, musisz użyć funkcji porównującej.
Funkcja porównująca powinna zwracać:
- Wartość ujemną, jeśli a powinno znaleźć się przed b
- Wartość dodatnią, jeśli b powinno znaleźć się przed a
- Zero, jeśli są równe
Oto jak posortować liczby za pomocą funkcji porównującej:
// Porządek rosnący
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]// Porządek malejący
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]Kolejny przykład sortowania obiektów:
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// Sortuj według wieku (rosnąco)
people.sort((a, b) => a.age - b.age);// Sortuj według imienia (do sortowania alfabetycznego użyj localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));Wyzwanie
ŁatwyUtwórz funkcję o nazwie sortByLength, która przyjmuje tablicę ciągów znaków i zwraca nową tablicę z tymi samymi ciągami posortowanymi rosnąco według długości. Jeśli dwa ciągi mają tę samą długość, powinny być posortowane alfabetycznie.
Spróbuj swoich sił
function sortByLength(arr) {
return arr.sort((a, b) => {
// Wpisz tutaj kod
})
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Napisy w praktyce
Podstawy napisówIterowanie po napisachLiterały szablonoweMetody napisówPodsumowanie – mistrz napisów4JSON, część 2
Iterowanie po JSONZagnieżdżony JSONOpcjonalne łańcuchowanie w JSONPłytka i głęboka kopiaPowtórka — sklep rowerowyPowtórka — Układ Słoneczny7System zarządzania biblioteką
Omówienie projektuDodawanie książek10Zarządzanie systemem festiwalowym
Przegląd projektuDodawanie filmów i miejsc2Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DPowtórka — tablice 2DDodawanie i odejmowanie macierzyTablice nieregularneTablice 3D i większeTypowe wzorce tablic 2DPowtórka — wszystko o tablicach5Zbiory — część 1
Czym jest zbiór?Iterowanie po zbiorachDodawanie elementuUsuwanie elementuSprawdzanie, czy element istniejeRozmiar i sprawdzanie, czy zbiór jest pustyKopiowanie i czyszczeniePodsumowanie — podstawy zbiorów8Ciekawe zagadnienia dotyczące tablic
Destrukturyzacja tablicSkładnia spread w tablicachRzadkie tablicePodsumowanie – warsztaty z tablic3JSON część 1
Czym jest JSON?Sprawdzanie, czy klucz istniejeMetody obiektówOperator spread — część 1Operator spread — część 2Usuwanie kluczyPodsumowanie — manipulowanie kluczami w JSONPoćwicz samodzielnie: Kompilator JavaScript online