Ruby如何在散列中找到大于x的每个值?

我对 Ruby 有点陌生,并且在学习哈希时遇到了问题。我有一个哈希,其中包含本月内的几个月和几天。我需要打印每一个有 31 天的。

months = {
  "MAR" => 31,
  'APR' => 30,
  'MAY' => 31,
  'JUN' => 30
}

回答

您可以使用:

months.select { |_month, days| days > 30 }    

前者为您提供符合条件 ( days > 30) 的所有结果。

以下是文档:

  • select

获得所需的值后,您可以将它们打印到控制台(或根据需要输出),例如

long_months = months.select { |_month, days| days > 30 }
long_months.each { |month, days| puts "#{month} has #{days} days" }

话虽如此,在打印结果之前分配一个值意味着两个循环,而这可以使用简单的方法在一个循环中实现each

months.each do |month, days|
  puts("#{month} has #{days} days") if days > 30
end

这会更有效率,因为涉及的流失更少:)


以上是Ruby如何在散列中找到大于x的每个值?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>