Recherche…


Introduction

Les tableaux multidimensionnels dans Ruby ne sont que des tableaux dont les éléments sont d'autres tableaux.

Le seul problème est que, puisque les tableaux Ruby peuvent contenir des éléments de types mixtes, vous devez être sûr que le tableau que vous manipulez est composé d’autres tableaux et non, par exemple, de tableaux et de chaînes.

Initialisation d'un tableau 2D

Rappelons d'abord comment initialiser un tableau de nombres entiers 1D:

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

Étant un tableau 2D simplement un tableau de tableaux, vous pouvez l'initialiser comme ceci:

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

Initialisation d'un tableau 3D

Vous pouvez aller plus loin et ajouter une troisième couche de tableaux. Les règles ne changent pas:

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

Accéder à un tableau imbriqué

Accéder au 3ème élément du premier sous-tableau:

my_array[1][2]

Aplatissement du tableau

Étant donné un tableau multidimensionnel:

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

l'opération d'aplatissement consiste à décomposer tous les enfants du tableau dans le tableau racine:

my_array.flatten

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow