使用多个值访问 ruby 哈希中的特定值

Access a specific value in ruby hash with multiple values

嗨,我怎样才能访问 ruby 哈希中的特定值,例如,我怎样才能在木星内部变得“更冷”

planets= {
"jupiter" => ["brown", "big" , "colder"]
"mars" => ["red", "small", "cold"]
};

关注意图

肯定有不止一种方法可以做到这一点,所以关键是少关注结果(尽管获得正确的结果很重要),多关注有效表达您的意图 与代码。下面提供的所有示例(以及其他示例)都会为您提供正确的结果,但方法和语义都略有不同。始终选择最符合您要说的内容的方法。

修正你的哈希值

在执行任何其他操作之前,请修复您的无效哈希。例如:

planets = {
  "jupiter" => ["brown", "big", "colder"],
  "mars"    => ["red", "small", "cold"],
}

位置Select离子

Select 你的键,然后是最后一个元素。示例包括:

planets['jupiter'][2]
#=> "colder"

planets['jupiter'][-1]
#=> "colder"

planets['jupiter'].last
#=> "colder"

基于内容Selection

如果您不知道要从嵌套数组中 select 哪个元素,则需要使用某种形式的匹配来找到它。示例包括:

planets['jupiter'].grep(/colder/).pop
#=> "colder"

planets['jupiter'].grep(/colder/).first
#=> "colder"

planets['jupiter'].grep(/colder/)[0]
#=> "colder"

planets['jupiter'].select { _1.match? /colder/ }.pop
#=> "colder"