November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Przy „naturalnym” porównywaniu łańcuchy rozpoczynające się wielką literą uważane są za mniejsze od rozpoczynających się od małej litery[25]:
list = ["Albania", "antrakt", "zoologia", "Zaire"] list.sort # => ["Albania", "Zaire", "anteater", "zorilla"]
Chcielibyśmy jednak posortować łańcuchy alfabetycznie, bez względu na wielkość liter.
Najprostszym i najbardziej efektywnym rozwiązaniem tego problemu jest użycie metody Array#sort_by:
list.sort_by { |x| x.downcase }
# => ["Albania", "antrakt", "Zaire", "zoologia"]
Jak łatwo zauważyć, łańcuchy przed porównaniem zamieniane są na małe litery.
Metody sort_by używaliśmy już w „4.5. Sortowanie tablicy” ...