Rails 哈希数组按顶层键分组并提取内层值的实现方法
Ruby哈希数组按顶层键分组提取内层属性解决方案
你当前的group_by语句仅完成了按顶层键分组的逻辑,分组结果中每个数组元素仍然保留了原始的单键哈希结构,只需要新增一步对分组值的映射转换,提取每个单键哈希对应的内层属性即可。
调整后完整代码
wins.group_by { |h| h.keys.first } .transform_values { |group_arr| group_arr.map { |single_hash| single_hash.values.first } } .sort .reverse .to_h
逻辑说明
- 原有
group_by逻辑保持不变,完成按顶层键的分组操作 - 新增
transform_values方法遍历每个分组的数组,将数组中每个单键哈希的内层属性提取出来,去掉冗余的外层键 - 后续的排序、反转、转哈希逻辑和你原有写法一致,不改变结果的排序规则
运行后即可得到你预期的分组格式,每个分组下直接存储内层属性哈希,无额外外层键包裹。
内容的提问来源于stack exchange,提问作者Manav
相关产品推荐
相关产品推荐

