如何按字母顺序对数组进行排序?
How do I sort an array alphabetically?
我的语法有问题,尝试了一些方法,但仍然没有正确。我不明白什么?
谢谢
change = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
change.sort {|anythinghere| a <=> b puts "Ascending #{anythinghere}" }
使用sort_by
方法:
change = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
change.sort_by { |change| change }
# => ["cents", "coins", "dimes", "pence", "pennies", "quarters"]
为什么不 change.sort
?
Array#sort
没有分块默认升序排序,也就是分块{ |a, b| a <=> b }
:
sorted = change.sort # Ascending sort
sorted = change.sort { |a, b| a <=> b } # Same thing!
sorted
# => ["cents", "coins", "dimes", "pence", "pennies", "quarters"]
请注意,与您在问题中编写的块不同,此块需要考虑您正在比较的两个变量。仅当您希望修改元素的排序方式时才需要包含自定义比较器,例如如果你想按降序排序:{ |a, b| b <=> a }
如果要打印数组的文本表示,请使用
puts sorted
如果你想就地排序(不创建新数组)使用sort!
硬币 = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
coins.sort!
p币
改变你的变量名以避免ruby魔法
我的语法有问题,尝试了一些方法,但仍然没有正确。我不明白什么? 谢谢
change = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
change.sort {|anythinghere| a <=> b puts "Ascending #{anythinghere}" }
使用sort_by
方法:
change = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
change.sort_by { |change| change }
# => ["cents", "coins", "dimes", "pence", "pennies", "quarters"]
为什么不 change.sort
?
Array#sort
没有分块默认升序排序,也就是分块{ |a, b| a <=> b }
:
sorted = change.sort # Ascending sort
sorted = change.sort { |a, b| a <=> b } # Same thing!
sorted
# => ["cents", "coins", "dimes", "pence", "pennies", "quarters"]
请注意,与您在问题中编写的块不同,此块需要考虑您正在比较的两个变量。仅当您希望修改元素的排序方式时才需要包含自定义比较器,例如如果你想按降序排序:{ |a, b| b <=> a }
如果要打印数组的文本表示,请使用
puts sorted
如果你想就地排序(不创建新数组)使用sort!
硬币 = ['cents', 'pennies', 'coins', 'dimes', 'pence', 'quarters']
coins.sort!
p币
改变你的变量名以避免ruby魔法