【问题标题】:get unique key values from an array of array of hash in ruby to perform grouping从 ruby​​ 中的哈希数组中获取唯一键值以执行分组
【发布时间】:2021-08-19 11:27:17
【问题描述】:

我有一个数组如下:

arr = [
  [
    { :pm => 38, :scs => 5, :bg => "#66ffff", :impact => nil, :focus => 9 },
    { :pm => 38, :scs => 6, :bg => "#66ffff", :impact => 2, :focus => 9 },
    { :pm => 38, :scs => 7, :bg => "#66ffff", :impact => nil, :focus => 9 }
  ],
  [
    { :pm => 26, :scs => 5, :bg => "#ffe18b", :impact => 2, :focus => 2 },
    { :pm => 26, :scs => 6, :bg => "#ffe18b", :impact => 1, :focus => 2 },
    { :pm => 26, :scs => 7, :bg => "#ffe18b", :impact => nil, :focus => 2 }
  ],
  [
    { :pm => 39, :scs => 5, :bg => "#ffe18b", :impact => nil, :focus => 2 },
    { :pm => 39, :scs => 6, :bg => "#ffe18b", :impact => nil, :focus => 2 },
    { :pm => 39, :scs => 7, :bg => "#ffe18b", :impact => nil, :focus => 2 }
  ],
  [
    { :pm => 25, :scs => 5, :bg => "#ffffe5", :impact => 1, :focus => 4 },
    { :pm => 25, :scs => 6, :bg => "#ffffe5", :impact => 2, :focus => 4 },
    { :pm => 25, :scs => 7, :bg => "#ffffe5", :impact => 1, :focus => 4 }
  ],
  [
    { :pm => 34, :scs => 5, :bg => "#ffffe5", :impact => nil, :focus => 4 },
    { :pm => 34, :scs => 6, :bg => "#ffffe5", :impact => nil, :focus => 4 },
    { :pm => 34, :scs => 7, :bg => "#ffffe5", :impact => nil, :focus => 4 }
  ],
  [
    { :pm => 23, :scs => 5, :bg => "#ffffe5", :impact => 2, :focus => 4 },
    { :pm => 23, :scs => 6, :bg => "#ffffe5", :impact => 1, :focus => 4 },
    { :pm => 23, :scs => 7, :bg => "#ffffe5", :impact => 1, :focus => 4 }
  ],
  [
    { :pm => 32, :scs => 5, :bg => "#ffffe5", :impact => nil, :focus => 4 },
    { :pm => 32, :scs => 6, :bg => "#ffffe5", :impact => 2, :focus => 4 },
    { :pm => 32, :scs => 7, :bg => "#ffffe5", :impact => 1, :focus => 4 }
  ],
  [
    { :pm => 17, :scs => 5, :bg => "#ffffe5", :impact => nil, :focus => 4 },
    { :pm => 17, :scs => 6, :bg => "#ffffe5", :impact => 2, :focus => 4 },
    { :pm => 17, :scs => 7, :bg => "#ffffe5", :impact => 1, :focus => 4 }
  ]
]

我需要唯一地获取键:focus的值,以便根据焦点值对上述列表进行分组。

【问题讨论】:

  • 您的预期结果是什么?

标签: arrays ruby-on-rails ruby hash


【解决方案1】:

这样可以吗?

arr.flatten.group_by {|elem| elem[:focus]}

如果您只需要 uniq focus 值,

arr.flatten.map {|elem| elem[:focus] }.uniq

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2010-09-15
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    相关资源
    最近更新 更多