前任。乔 90,迈克 80,史蒂夫 100。
我将如何打印出类似下面的内容?在Ruby中甚至可能吗?
Rank Name Score
1 Steve 100
2 Joe 90
3 Mike 80
非常感谢任何帮助!
前任。乔 90,迈克 80,史蒂夫 100。
我将如何打印出类似下面的内容?在Ruby中甚至可能吗?
Rank Name Score
1 Steve 100
2 Joe 90
3 Mike 80
非常感谢任何帮助!
正如评论中所指出的,解决此问题的最直观的方法可能是拥有一组用户,其中每个用户都表示在他自己的哈希中(这可能是您在问题中所指的内容)。
users = [
{ name: "Joe", score: 90 },
{ name: "Mike", score: 80 },
{ name: "Steve", score: 100 }
]
sorted_users = users.sort_by { |user| user[:score] }.reverse
puts "Rank Name Score"
sorted_users.each_with_index do |user, index|
rank_str = (index + 1).to_s.ljust(7)
name_str = user[:name].ljust(10)
score_str = user[:score].to_s.rjust(5)
puts "#{rank_str}#{name_str}#{score_str}"
end
这将打印出以下内容
# Rank Name Score
# 1 Steve 100
# 2 Joe 90
# 3 Mike 80
您可以使用 each_with_index 对 Ruby 哈希进行迭代
{ steve: 100, jeo: 90,mike: 80 }.each_with_index do |(key, value), index|
puts "#{index}: #{key} => #{value}"
end