我想对表示数值范围的字符串数组进行排序,如下所示:
b = ["0-5", "100-250", "5-25", "50-100", "250-500", "25-50"]
使用sort
我得到的方法:
b.sort
# => ["0-5", "100-250", "25-50", "250-500", "5-25", "50-100"]
我想要这样的:
["0-5, "5-25", "25-50", "50-100", "100-250", "250-500"]
Try:
b.sort_by { |r| r.split('-').map(&:to_i) }
# => ["0-5", "5-25", "25-50", "50-100", "100-250", "250-500"]
该解决方案采用每个项目 ("0-5"
)将其拆分为两项(["0", "5"]
),并将它们转换为整数([0, 5]
)。现在按数组排序(第一项优先,第二项作为决胜局)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)