Проблема с Ruby-массивом - PullRequest
       1

Проблема с Ruby-массивом

0 голосов
/ 07 марта 2012

Я пытаюсь выучить Ruby, и массивы доставляют мне неприятности. У меня есть вход, который я сглаживаю до шаблона "name, number, name, number". Затем я хочу создать массив из 2-х элементов, каждый из которых содержит имя и следующий номер.

Когда я помещаю эти 2-элементные массивы в другой массив, кажется, что они автоматически сливаются с 0-мерным массивом. Я хочу, чтобы конечный массив имел размер [N/2][2], N - количество имен или чисел на входе.

http://pastie.org/3542269

puts с комментарием не происходит до тех пор, пока не будут напечатаны все элементы из массива пар, поэтому он выглядит следующим образом:

Name
1
Name
2
Name
3

Когда я ожидал этого:

Name
1

Name
2

Name
3

Я думаю, мои вопросы:

  • Как поместить массивы внутрь массива, чтобы получить зубчатый?
  • Как мне отслеживать, сколько измерений мои массивы в Ruby? Намного проще, когда вам нужно объявить размер.

1 Ответ

4 голосов
/ 07 марта 2012
some_array = [[["Name 1", "value 1"], ["Name 2", "value 2"]], [["Name 3", "value 3"], ["Name 4", "value 4"]]]

array = some_array.flatten
new_array = array.each_slice(2).map do |a, b|
  [a,b]
end
#=> [["Name 1", "value 1"],
#=> ["Name 2", "value 2"],
#=> ["Name 3", "value 3"],
#=> ["Name 4", "value 4"]]

, который похож на some_array.flatten(1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...