Ruby通过数组索引获取值

时间:2017-05-29 06:15:24

标签: ruby-on-rails ruby

我正在学习RubyonRails,我来自PHP的背景

我有一个看起来像这样的数组

TYPES = [
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
]

我想获得索引Casual的值,这就是我要做的事情

work_type = TYPES.first['Casual']

虽然它完美无缺,我能够获得价值,但我想知道这是否是正确的方法,如果我应该使用map

2 个答案:

答案 0 :(得分:3)

不,这不是正确的方法,不,你不应该使用地图。相反,你应该忘记PHP称之为“关联数组”的可怕憎恶。

Ruby有适当的词典/哈希映射,你想在这里使用它们:

TYPES = {
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
}

TYPES['Casual'] # => 'casual'

答案 1 :(得分:1)

这实际上是Array

Hash
TYPES = [{
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
}]

是的,如果first

中只有一个哈希,则可以使用Array

但如果您有两个以上Hash,并且想要收集Casual的所有值,请使用map

work_types = TYPES.map { |type| type['Casual'] }
#=> ["casual", "something else"]

修改

如果您确实有一个哈希值,那么我建议您使用@ sergio'答案