Ruby on rails Ruby通过数组索引获取值
我正在学习RubyonRails,我来自PHP的背景 我有一个像这样的数组Ruby on rails Ruby通过数组索引获取值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习RubyonRails,我来自PHP的背景 我有一个像这样的数组 TYPES = [ 'Casual' => 'casual', 'Full-Time' => 'full_time', 'Part-Time' => 'part_time', ] 我想得到indexCasual的值,这就是我要得到它的方法 work_type = TYPES.first['Casual'] 虽然它工作得非常好,我能够得到值,但我想知道这是否是正确的方法,是否应该使用map
TYPES = [
'Casual' => 'casual',
'Full-Time' => 'full_time',
'Part-Time' => 'part_time',
]
我想得到indexCasual
的值,这就是我要得到它的方法
work_type = TYPES.first['Casual']
虽然它工作得非常好,我能够得到值,但我想知道这是否是正确的方法,是否应该使用
map
这实际上是散列的数组
TYPES = [{
'Casual' => 'casual',
'Full-Time' => 'full_time',
'Part-Time' => 'part_time',
}]
work_types = TYPES.map { |type| type['Casual'] }
#=> ["casual", "something else"]
是的,如果数组中只有一个哈希值,则可以先使用
但是如果您有两个以上的Hash
,并且希望收集Casual
的所有值,请使用map
work_types = TYPES.map { |type| type['Casual'] }
#=> ["casual", "something else"]
编辑
如果你有一个散列,那么我建议你使用@sergio的答案不,这不是正确的方法,不,你不应该使用map。相反,您应该忘记PHP称之为“关联数组”的可怕的憎恶
Ruby有适当的字典/哈希映射,您希望在此处使用它们:
TYPES = {
'Casual' => 'casual',
'Full-Time' => 'full_time',
'Part-Time' => 'part_time',
}
TYPES['Casual'] # => 'casual'
是的,我一开始试过这个,这给了我一个TypeError错误:没有将字符串隐式转换为Integer@Saadia:请注意不同的括号您不能有这样的数组。这是无效的。@SergioTulentsev你是对的。@SergioTulentsev是PHP中OP描述正确的哈希文字吗?如果是的话,应该用PHP编写文本。否则,背景并不重要。@SergioTulentsev那么这个问题真的没有意义。我仍然可以编辑以使其有意义。让我们一起来。