Ruby Language
Многомерные массивы
Поиск…
Вступление
Многомерные массивы в Ruby - это просто массивы, элементами которых являются другие массивы.
Единственный улов в том, что поскольку массивы Ruby могут содержать элементы смешанных типов, вы должны быть уверены, что массив, который вы управляете, эффективно состоит из других массивов, а не, например, массивов и строк.
Инициализация 2D-массива
Давайте сначала рассмотрим, как инициализировать массив 1D ruby целых чисел:
my_array = [1, 1, 2, 3, 5, 8, 13]
Будучи 2D-массивом, просто массивом массивов, вы можете его инициализировать следующим образом:
my_array = [
[1, 1, 2, 3, 5, 8, 13],
[1, 4, 9, 16, 25, 36, 49, 64, 81],
[2, 3, 5, 7, 11, 13, 17]
]
Инициализация 3D-массива
Вы можете пойти дальше вниз и добавить третий слой массивов. Правила не меняются:
my_array = [
[
[1, 1, 2, 3, 5, 8, 13],
[1, 4, 9, 16, 25, 36, 49, 64, 81],
[2, 3, 5, 7, 11, 13, 17]
],
[
['a', 'b', 'c', 'd', 'e'],
['z', 'y', 'x', 'w', 'v']
],
[
[]
]
]
Доступ к вложенному массиву
Доступ к третьему элементу первого подмассива:
my_array[1][2]
Сплошное выравнивание
Учитывая многомерный массив:
my_array = [[1, 2], ['a', 'b']]
операция сглаживания заключается в том, чтобы разложить все дочерние элементы массива в корневой массив:
my_array.flatten
# [1, 2, 'a', 'b']