我正在尝试将哈希数组转换为哈希,并将密钥作为数组中哈希元素之一。
例如:a = [{"active_accounts": 3, "id": 5}, {"active_accounts": 6, "id": 1}
我想将此数组转换为
a = {5: {"active_accounts": 3}, 1: {"active_accounts": 6}}
我试过通过循环遍历数组并访问特定键的单个哈希来实现它,但这似乎不起作用。任何线索都会受到赞赏。
答案 0 :(得分:2)
a.each_with_object({}) {|obj , hash| hash.merge!(Hash[obj[:id], Hash["active_accounts",obj[:active_accounts]]])}
# {5=>{"active_accounts"=>3}, 1=>{"active_accounts"=>6}}
希望它有所帮助。
答案 1 :(得分:1)
安全变体,映射到数组(预期并正确处理相同的symbol-value
):
SYMBOL-VALUE
你问的是什么:
"id"
答案 2 :(得分:1)
另一种可能的解决方案)
a.map { |hash| [hash.delete(:id), hash] }.to_h
#=> {5=>{:active_accounts=>3}, 1=>{:active_accounts=>6}}