arrays - 从 ruby 中的哈希数组中获取唯一键值以执行分组
问题描述
我有一个数组如下:
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
唯一地获取键的值,以便根据焦点值对上述列表进行分组。
解决方案
这会做吗?
arr.flatten.group_by {|elem| elem[:focus]}
如果您只需要 uniqfocus
值,
arr.flatten.map {|elem| elem[:focus] }.uniq
推荐阅读
- sequelize.js - sequalize 类型 'void' 不可分配给类型 'Model
' - c++ - gcov 不适用于 pthread、WSL-2、Clion
- html - 如何使div中的元素居中
- javascript - 跳过 JS 表格循环中的第一列
- discord.js - 我正在尝试在 discord.js 中创建超过 1 个输入命令
- emacs - 防止 clang-format 删除 emacs 的换页符
- json - 如何为 HERE 的 Fuel API 授权客户端?
- javascript - 如何使用 .Net Core 3 实现 UpdatePanel 功能
- c# - 为什么我们默认允许溢出?
- javascript - JavaScript RegExp 捕获组