4.5. Sortowanie tablicy

Problem

Chcemy posortować tablicę obiektów, być może zgodnie ze specyficznym rozumieniem słowa „sortowanie”.

Rozwiązanie

Tablica jednorodna, zawierająca elementy tego samego typu — na przykład łańcuchy albo liczby — może być posortowana w sposób „naturalny” za pomocą metody Array#sort:

[5.01, -5, 0, 5].sort                    # => [-5, 0, 5, 5.01]
["Utahraptor", "Ankylosaur", "Maiasaur"].sort
# => ["Ankylosaur", "Maiasaur", "Utahraptor"]

Jeżeli jednak sortowanie ma opierać się na innym kryterium — na przykład pewnej własności obiektów lub wyniku zwracanego przez pewną metodę — należy posłużyć się metodą Array#sort_by funkcjonującą w oparciu o stowarzyszony blok kodowy.

arrays = [[1,2,3], [100], [10,20]] arrays.sort_by { |x| x.size ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.