/ / Fusionner des tableaux de rubis dans un tableau multidimensionnel - ruby

Fusionner des tableaux de rubis dans un tableau multidimensionnel - ruby

Quel est le meilleur moyen de fusionner les deux tableaux suivants dans un tableau multidimensionnel?

x = ["A", "B", "C"]
y = ["D", "E", "F"]

Résultat désiré:

z = [["A", "D"], ["A", "E"], ["A", "F"], ["B", "D"], ["B", "E"], ["B", "F"], ["C", "D"], ["C", "E"], ["C", "F"]]

Réponses:

6 pour la réponse № 1

Vous pouvez utiliser Array # produit:

x = ["A", "B", "C"]
y = ["D", "E", "F"]

result = x.product(y)

puts result.inspect

2 pour la réponse № 2

Voici un moyen, bien que pas nécessairement le plus simple possible:

x = ["A", "B", "C"]
y = ["D", "E", "F"]

result = []

x.each do |x|
y.each do |y|
result << [x, y]
end
end

puts result.inspect

Mettre à jour: voici une manière plus concise:

x = ["A", "B", "C"]
y = ["D", "E", "F"]

puts x.map { |x|
y.map { |y| [x, y] }
}.inspect

0 pour la réponse № 3

Une autre façon de le faire est la suivante:

x = ["A", "B", "C"]
y = ["D", "E", "F"]

print x.concat(y).each_slice(2).to_a    # => [["A", "B"], ["C", "D"], ["E", "F"]]