我在下面有以下代码。
Group.all.collect {|group| [ group.name, group.id ]}.inspect
这个输出如下。
[["Bankruptcy Group", 1], ["PIA Group", 2], ["Liquidation Group", 3]]
我想转换为不同的格式,如下所示。
{"Bankruptcy Group" => 1, "PIA Group"=> 2, "Liquidation Group"=> 3}
我该怎么做?
答案 0 :(得分:3)
[["Bankruptcy Group", 1], ["PIA Group", 2], ["Liquidation Group", 3]].to_h
答案 1 :(得分:2)
您可以直接创建哈希:
Group.all.inject({}) { |h, g| h[g.name] = g.id; h }
答案 2 :(得分:0)
array = Group.all.collect { |group| [ group.name, group.id ] }
hash = Hash[array]
答案 3 :(得分:0)
to_h
的Enumerable
方法可用于将对象中的每个项目解释为[key, value]
形式的数组时将可枚举对象转换为哈希:
Group.all.map { |g| [g.name, g.id] }.to_h
来自to_h
的文档:
返回将
enum
解释为[key, value]
对列表的结果。