我有这样的数组:
status = [
["Deleted", "deleted", 0],
["In planning", "planning", 1],
["In approval", "approval", 2]
]
如何将其转换为像这样的哈希数组?
[
{:label => "Deleted", :value => "deleted"},
{:label => "In planning", :value => "planning"},
{:label => "In approval", :value => "approval"}
]
到目前为止,我试过了:
status.each do |s| label: s[0], value: s[1] end
然而,我没有得到一系列哈希。如果我这样做:
puts s[0], value: s[1]
我在控制台中只看到哈希:
{:label => "Deleted", :value => "deleted"}
{:label => "In planning", :value => "planning"}
{:label => "In approval", :value => "approval"}
我相信我不知何故需要将这些哈希值添加到数组中。
答案 0 :(得分:2)
尝试以下方法:
status.map { |label, value, _| { label: label, value: value } }
答案 1 :(得分:1)
status.map{ |s| Hash[label: s[0], value: s[1]] }
# => [{:label=>"Deleted", :value=>"deleted"}, {:label=>"In planning", :value=>"planning"}, {:label=>"In approval", :value=>"approval"}]