我还是一个ruby / rails初学者,我有点卡在这里。
这是我的所作所为: 我有一个哈希数组,每个哈希包含多个键,f.e。:firstname,lastname,nickname,birthday
在进一步处理之前,我希望获得所有重复的哈希值。我知道这可以通过合并来完成。有一个棘手的问题:我有一个特殊的标准"重复"。我想检查每个哈希值,如果三个键firstname,lastname和nickname是相同的,则只计数重复。如果是这种情况,我想从数组中删除所有重复项并附加一个新密钥" count"到最后一个记录发生次数的条目。
我觉得枚举会让我走向成功,但我不知道如何在一个优雅的轨道中解决这个问题" rails"方式。
非常感谢您的帮助!
亲切的问候, madhippie。
答案 0 :(得分:1)
uniq
在更新版本的ruby中占用了一块,但由于您还需要计数,我会开始研究group_by
方法:
result = hash.group_by{|x| x.values_at(:firstname, :lastname, :nickname)}
然后只需要抓取哈希并添加值的数量:
result.map{|_,values| values.first.merge {size: values.lenth}}