Będzie to bardzo krótki wpis. Możliwe, że będzie to pierwszy z serii. Przedstawię w nim jak posortować tablicę alfabetycznie, która zawiera ciągi z polskimi znakami (ang. array of strings).
W języku JavaScript mamy do sortowania tablic służy funkcja sort()
, która działa tak:
NOTE: funkcja zwraca, ale też sortuje, tablicę w miejscu, więc aby nie stracić oryginalnej tablicy należy ją skopiować, można użyć
arr.slice().sort()
lub[...arr].sort()
.
Nie jest to dokładnie to, o co nam chodzi. W poprawnie posortowanej tablicy „Ąmar” powinno być drugie na liście (przed „Baro”). Takie posortowanie naszych ciągów znaków wynika z faktu, że brane są pod uwagę kody znaków (ang. CodePoints), które w tablicy znaków nie są w tych samych miejscach, co w Polskim alfabecie. Polskie znaki są na końcu, (zobacz tabelę Unicode).
A oto rozwiązanie, które poprawnie posortuje tablicę:
Tak samo można posortować obiekty po jakimś polu (np. po nazwisku):
Wsparcie tego API jest bardzo duże, bo 99%. Wspiera je w pełni nawet IE11 (zobacz Can I Use). Dlatego nie ma powodu, aby zawsze nie sortować tablicy z uwzględnieniem znaków z aktualnego języka (ang. locale).
Warto też zajrzeć na stronę MDN, gdzie jest pełna dokumentacja do funkcji localeCompare, która oprócz prostego wywołania, ma też masę opcji.
Komentarze
Hasło, które podasz umożliwi ponowne zalogowanie się i np. usunięcie komentarza, jest dobrowolne. Email jest szyfrowany i używany do wysyłania powiadomień o odpowiedziach do komentarzy oraz do pobierania awatara dzięki usłudze Gravatar.com.