Поиск…


Вступление

Многомерные массивы в 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']


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow