【发布时间】:2019-10-27 13:30:00
【问题描述】:
我正在尝试转换以下内容:
dep = [
{id: 1, depen: 2},
{id: 1, depen: 3},
{id: 3, depen: 4},
{id: 5, depen: 3},
{id: 3, depen: 6}
]
到单个哈希中:
# {1=>2, 1=>3, 3=>4, 5=3, 3=>6}
我尝试了在另一个 question 上找到的解决方案:
dep.each_with_object({}) { |g,h| h[g[:id]] = g[:dep_id] }
但是,输出删除了元素并给了我:
#{1=>3, 3=>6, 5=>2}
最后一个元素也不正确。
【问题讨论】:
-
dep.map(&:values).to_h #=> {1=>3, 3=>6, 5=>3}。你当然不能有重复的键。1=>3将1的值从2更新为3;3=>6将3的值从4更新为6。