Je peux facilement ajouter un élément à un tableau existant:
arr = [1]
arr << 2
# => [1, 2]
Comment pourrais-je ajouter plusieurs éléments à mon tableau?
J'aimerais faire quelque chose comme arr << [2, 3]
, mais cela ajoute un tableau à mon tableau #=> [1, [2, 3]]
Utilisation de l'opérateur +=
:
arr = [1]
arr += [2, 3]
arr
# => [1, 2, 3]
.Push
arr = [1]
arr.Push(2, 3)
# => [1, 2, 3]
Vous pouvez aussi .Push()
tous les éléments d’un autre tableau
second_arr = [2, 3]
arr.Push(*second_arr)
# => [1, 2, 3]
Mais remarquez! _ {sans _le *
, le second_array
sera ajouté à arr
.
arr.Push(second_arr)
# => [1, [2, 3]]
Alternative inférieure:
Vous pouvez également chaîner les appels <<
:
arr = [1]
arr << 2 << 3
# => [1, 2, 3]
Vous pouvez aussi faire comme ci-dessous en utilisant Array#concat
:
arr = [1]
arr.concat([2, 3]) # => [1, 2, 3]
Il existe plusieurs méthodes pour y parvenir:
array = [1, 2]
array += [3, 4] # => [1, 2, 3, 4]
# Push: put the element at the end of the array
array.Push([5, 6]) # => [1, 2, 3, 4, [5, 6]]
array.Push(*[7, 8]) # => [1, 2, 3, 4, [5, 6], 7, 8]
array << 9 # => [1, 2, 3, 4, [5, 6], 7, 8, 9]
# unshift: put the element at the beginning of the array:
array.unshift(0) #=> [0, 1, 2, 3, 4, [5, 6], 7, 8, 9]
Quelques liens:
utilisez simplement .flatten
par exemple si vous avez ce tableau
array = [1,2,3,4,5,6]
et tu fais ça
array.Push([123,456,789])
array.Push([["abc","def"],["ghi","jkl"]])
votre chaîne ressemblerait à quelque chose comme
array = [[1,2,3,4,5,6],[123,456,789],[["abc","def"],["ghi","jkl"]]]
tout ce que vous devez faire c'est
array.flatten!
et maintenant votre tableau aimerait ceci
array = [1,2,3,4,5,6,123,456,789,"abc","def","ghi","jkl"]
De plus, pour construire un tableau avec des éléments n fois, vous pouvez utiliser le splat (astérisque AKA, *
):
arr = [true] * 4 # => [true, true, true, true]
Vous pouvez également utiliser le splat pour répéter plusieurs éléments:
arr = [123,'abc'] * 3 # => [123,'abc',123,'abc',123,'abc']
Bien sûr, vous pouvez utiliser n'importe quel opérateur de tableau avec cela, tel que +:
arr = [true] * 3 + [false] # => [true, true, true, false]
J'utilise cela conjointement avec #sample
pour générer des résultats pondérés aléatoires:
arr.sample # => true 3 out of 4 times
Utilisez Array # insert pouvez ajouter un tableau à n’importe quelle position:
a = [1, 2, 3]
b = [4,5,6]
b.insert(0, *a)
=> [1, 2, 3, 4, 5, 6]