dmt*_*989 0 ruby arrays hash ruby-on-rails-4
我有一系列哈希:
@operating_systems = [
{"title"=>"iPhone", "value_percent"=>"42.6"},
{"title"=>"Windows 7", "value_percent"=>"21.3"},
{"title"=>"Android", "value_percent"=>"12.8"},
{"title"=>"Mac OS X", "value_percent"=>"8.5"},
{"title"=>"Windows 8.1", "value_percent"=>"6.4"},
{"title"=>"Windows XP", "value_percent"=>"4.3"},
{"title"=>"Linux", "value_percent"=>"2.1"},
{"title"=>"Windows Vista", "value_percent"=>"2.1"}
]
Run Code Online (Sandbox Code Playgroud)
并想要创建以下哈希:
{"iphone" => "42.6", "windows 7" => "21.3", ... "windows vista" => "2.1"}
Run Code Online (Sandbox Code Playgroud)
完成此任务的最佳方法是什么?
[
{"title"=>"iPhone", "value_percent"=>"42.6"},
{"title"=>"Windows 7", "value_percent"=>"21.3"},
{"title"=>"Android", "value_percent"=>"12.8"},
{"title"=>"Mac OS X", "value_percent"=>"8.5"},
{"title"=>"Windows 8.1", "value_percent"=>"6.4"},
{"title"=>"Windows XP", "value_percent"=>"4.3"},
{"title"=>"Linux", "value_percent"=>"2.1"},
{"title"=>"Windows Vista", "value_percent"=>"2.1"}
]
.map{|h| h.values.map(&:downcase)}.to_h
# =>
# {
# "iphone"=>"42.6",
# "windows 7"=>"21.3",
# "android"=>"12.8",
# "mac os x"=>"8.5",
# "windows 8.1"=>"6.4",
# "windows xp"=>"4.3",
# "linux"=>"2.1",
# "windows vista"=>"2.1"
# }
Run Code Online (Sandbox Code Playgroud)