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 № 1Vous 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"]]