Перебор элементов во вложенном списке - PullRequest
2 голосов
/ 04 марта 2012

Чтобы перебрать элементы в одномерном массиве, я могу использовать

array = [1, 2, 3, 4, 5, 6]
array.each { |x| puts x }

Есть ли способ сделать это для вложенного списка или двумерного массива?В этом коде:

two_d_array = [[1,2], [3,4], [5,6]]
two_d_array.each{|array| puts array}

Я хочу получить [1, 2], [3, 4], [5, 6], чтобы я мог получить доступ к каждому элементу списка отдельно и выполнить с ним некоторые операции, например array[1] = "new_value", но он дает 123456 Iхотите по возможности избегать использования matrix .

1 Ответ

6 голосов
/ 04 марта 2012

На самом деле блок each ведет себя так, как вы ожидаете, но команда puts выглядит так, как будто массив был предварительно сглажен.Если вы добавите inspect, это станет ясно:

>> two_d_array.each{|array| puts array.inspect}
[1, 2]
[3, 4]
[5, 6]

Таким образом, переменная array в каждой итерации будет элементом вложенного массива.

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