【发布时间】:2016-09-30 00:18:22
【问题描述】:
代码
$dail_book = {
"los_angeles" => 212,
"new_york" => 523,
"portland" => 234,
"seattle" => 502,
"miami" => 910,
"san_francisco" => 345,
"sioux_falls" => 543,
"omaha" => 642,
"minneapolis" => 342,
"san_diego" => 233
}
# Removes the underscore, captalizes each city,
# and prints it back to the user
def format_cities(k)
puts "#{k.split('_').map(&:capitalize).join(' ')}"
end
# Loops through $dail_book
def display_cities
puts "Options: "
puts $dail_book.sort.each {|k,v| format_cities(k)}
end
输出
Options:
Los Angeles
Miami
Minneapolis
New York
Omaha
Portland
San Diego
San Francisco
Seattle
Sioux Falls
los_angeles
212
miami
910
minneapolis
342
new_york
523
omaha
642
portland
234
san_diego
233
san_francisco
345
seattle
502
sioux_falls
543
问题
为什么在循环结束时返回整个哈希?发生了什么事?
【问题讨论】:
-
只需使用
map而不是each。请参阅文档。 -
您可以删除
format_cities并添加puts $dail_book.keys.map { |citie| citie.split('_').map(&:capitalize).join(' ') }.sort
标签: ruby