过滤一定长度的哈希键?

时间:2017-09-15 16:16:58

标签: ruby

我似乎无法找到一行代码才能做到这一点。我有一个哈希,我希望能够挑选出至少6个字符长的所有密钥。

2 个答案:

答案 0 :(得分:5)

试试这个

your_hash.keys.select { |k| k.length >= 6 }

答案 1 :(得分:1)

如你所愿“价值长度”

{a: 'carl', b: 'steve'}.map {|k, v| v.size }
# => [4, 5] 
# select sizes values directly  within the hash enumeration

{a: 'carl', b: 'steve'}.values.map {|v| v.size }
# => [4, 5] 
# convert hash to array of values and then select the sizes values

{a: 'carl', b: 'steve'}.values.select {|v| v.size > 4 }
# => ["steve"] 
# convert hash to array of values and then select values that has a condition

如果您想要关于“懒惰”枚举http://www.eq8.eu/blogs/28-ruby-enumerable-enumerator-lazy-and-domain-specific-collection-objects

的更多高级主题