【问题标题】:How do I find keys in my hash to map to elements that match a condition?如何在哈希中找到键以映射到匹配条件的元素?
【发布时间】:2017-10-09 22:35:31
【问题描述】:

我有一个将整数映射到数组的哈希。例如

{1 => ["abc"], 2 => ["ccc", "ddd"]}

如何从哈希中获取包含至少 2 个元素的数组的所有键?

【问题讨论】:

  • 您可以使用selectreject

标签: arrays ruby hash


【解决方案1】:
{1 => ["abc"], 2 => ["ccc", "ddd"]}.select{|_, a| a.length > 1}.keys
# => [2]

【讨论】:

  • 这个答案似乎更灵活 result = hash.select{|_, a| a.length > 1} #hash 与满足要求的值/对 result.keys #the keys
【解决方案2】:

这样的吗?

hash.each_key.select { |key| hash[key].count >= 2 }

【讨论】:

    【解决方案3】:

    另一种可能的解决方案:)

    {1 => ["abc"], 2 => ["ccc", "ddd"]}.map { |k, v| k if v.size > 1 }.compact
    # => [2]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 2014-06-19
      相关资源
      最近更新 更多