2013-03-03 2 views
0

У меня есть следующий код:Как получить доступ к ассоциативному массиву в пределах ДООСА массива

def operation hash 
    puts hash[:three][:three][:three] 
end 

operation :one => 'item', :two => [1,2,3], :three => [ 
    :one => 1, 
    :two => 2, 
    :three => [ 
     :one => 1, 
     :two => 2, 
     :three => [ 
      :test1, 
      :test2 
     ] 
    ] 
] 

Я хотел бы получить доступ к элементу хэш [: три] [: три] [: три] для вывода [test1, test2 ].
Почему это не работает?

ответ

0

Попробуйте это:

def operation hash 
    puts hash[:three][0][:three][0][:three] #=> [:test1, :test2] 
end 

Обратите внимание, что каждый из :three ключей имеет массив, хранящий значения.

+1

Фактически нет. Каждый из массивов содержит только 1 элемент, следовательно, индекс 0. – fmendez

1

A Hash должен быть окружен фигурными скобками {}, а не скобки [], которые зарезервированы для массивов.

В отличие от PHP, в Ruby это разные типы.

Смежные вопросы