Ruby - 从哈希数组中提取每个键的唯一值

标签 ruby arrays hash

从像下面这样的散列中,需要提取每个键的唯一值

array_of_hashes = [ {'a' => 1, 'b' => 2 , 'c' => 3} , 
                    {'a' => 4, 'b' => 5 , 'c' => 3}, 
                    {'a' => 6, 'b' => 5 , 'c' => 3} ]

需要提取数组中每个键的唯一值

'a' 的唯一值应该给

[1,4,6]

'b' 的唯一值应该给

[2,5]

“c”的唯一值应该给

[3]

想法?

最佳答案

使用Array#uniq :

array_of_hashes = [ {'a' => 1, 'b' => 2 , 'c' => 3} , 
                    {'a' => 4, 'b' => 5 , 'c' => 3}, 
                    {'a' => 6, 'b' => 5 , 'c' => 3} ]

array_of_hashes.map { |h| h['a'] }.uniq    # => [1, 4, 6]
array_of_hashes.map { |h| h['b'] }.uniq    # => [2, 5]
array_of_hashes.map { |h| h['c'] }.uniq    # => [3]

关于Ruby - 从哈希数组中提取每个键的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21186067/

相关文章:

ruby-on-rails - 通过 Paperclip 保存文件时频繁出现 "No such file or directory"

ruby 2.0 如何通过坐标访问矩阵中的元素?

arrays - 将数组的相似元素分组在一起,以便在 Perl 中立即在 foreach 中使用

perl - 在保留顺序的同时按值长度对哈希进行排序

ruby-on-rails - 在 Devise 中每天登录计数

ruby-on-rails - Rails 迁移列已添加但未填充

javascript - 重新映射 JavaScript 数组

python - 识别包含百分位数 numpy 矩阵中列中位数的行

java - 为用户创建的类和 Java 中已存在的类创建对象数组之间的区别

arrays - Ruby,创建没有现有数组键值的数组