Ricerca…


introduzione

Gli array multidimensionali in Ruby sono solo array i cui elementi sono altri array.

L'unico problema è che, poiché gli array Ruby possono contenere elementi di tipi misti, è necessario essere sicuri che la matrice che si sta manipolando sia effettivamente composta da altri array e non, ad esempio, da matrici e stringhe.

Inizializzazione di un array 2D

Ricapitoliamo come inizializzare un array di interi 1 rubino 1D:

my_array = [1, 1, 2, 3, 5, 8, 13]

Essendo un array 2D semplicemente un array di array, puoi inizializzarlo in questo modo:

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]
]

Inizializzazione di un array 3D

Puoi scendere di un livello più in basso e aggiungere un terzo livello di array. Le regole non cambiano:

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']
  ],
  [
    []
  ]
]

Accesso a un array annidato

Accedere al terzo elemento del primo sottotitolo:

my_array[1][2]

Array appiattito

Dato un array multidimensionale:

my_array = [[1, 2], ['a', 'b']]

l'operazione di appiattimento è di decomporre tutti i figli dell'array nell'array root:

my_array.flatten

# [1, 2, 'a', 'b']


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow