Ponieważ tablice są fundamentalnym obiektem w Ruby i innych językach programowania, Ruby zapewnia sposób sortowania elementów bez pisania doskonałego niestandardowego algorytmu.
Ten przewodnik nauczy Cię, jak sortować tablicę za pomocą wbudowanych metod i funkcjonalności Ruby.
Jak posortować tablicę
Ruby zapewnia różne sposoby sortowania tablicy. Metody sortowania i sort_by w Ruby są jednymi z najbardziej fundamentalnych dla sortowania tablicy.
#1: Za pomocą metody sortowania
Metoda sortowania jest zdefiniowana w module wymyślonym i zwraca wartości sortowanej tablicy.
Na przykład:
Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]Domyślnie metoda zwróci elementy w tablicy posortowanej w kolejności rosnącej.
Działa przy użyciu operatora statku kosmicznego, który zwraca 1, jeśli wartość jest większa niż, 0 dla równych i -1 dla mniej niż.
Jeśli podasz szereg strun, posortowana tablica będzie w kolejności alfabetycznej jako:
bazy danych = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, ElasticSearchMożesz przekazać blok do funkcji sortowania, jeśli chcesz zaimplementować niestandardową kolejność sortowania. Na przykład następujące wdraża kolejność odwrotną za pomocą metody sortowania.
NUMS = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]Ruby pozwala również posortować tablicę na miejscu za pomocą sortowania! metoda. Metoda wpłynie na oryginalną metodę na nową sortowaną tablicę jako:
NUMS = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]UWAGA: Użyj tego rodzaju! metoda ostrożna; zastępuje oryginalną tablicę, jak pokazano w powyższym przykładzie.
#2: Metoda sort_by
Metoda sort_by zapewnia elastyczność podczas sortowania w porównaniu z metodą sortowania. Spójrzmy na kilka przykładów, aby zobaczyć, jak działa sortowanie za pomocą metody sort_by.
Pierwszym przykładem jest sortowanie według długości łańcucha.
bazy danych = [„elasticsearch”, „memcached”, „MongoDB”, „MySQL”, „Postgresql,”, „Redis”]Sortowanie elementów w tablicy odbywa się w kolejności rosnącej w oparciu o długość zawartości ciągu.
Używamy właściwości długości ciągu, ponieważ metoda sort_by oczekuje wartości numerycznej.
Załóżmy, że chcemy sortować ciąg w odwrotnej kolejności za pomocą metody sort_by? W takim przypadku możemy dodać długość minus operator, jak pokazano poniżej:
bazy danych = [„elasticsearch”, „memcached”, „MongoDB”, „MySQL”, „Postgresql,”, „Redis”]Powyższy przykład zwróci posortowaną tablicę w kolejności malejącej.
Zamknięcie
Ten przewodnik pokazał, jak pracować z tablicami i sortować je za pomocą wbudowanych metod rubinowych.