Ich habe ein Array:Wie kann ich Ruby Arrays unterschiedlicher Größe transponieren?
arr=[[1,2,3],[4,5],[6]],
ich den folgenden Code haben:
arr.transpose
aber es funktioniert nicht, wie es zu lösen?
Ich erhalte
[[1,2,3],[4,5],[6]].transpose
IndexError: element size differs (2 should be 3)
from (irb):13:in `transpose'
from (irb):13
from /home/durrant
meine Lösung:
arr.reduce(&:zip).map(&:flatten)
Ausgang:
[[1, 4, 6], [2, 5, nil], [3, nil, nil]]
Was ist das erwartete Ergebnis für das gegebene Array? – falsetru
Schauen Sie http://stackoverflow.com/questions/21455310/why-does-ruby-have-zip-and-transpose-when-they-do-the-some-thing um zu verstehen, warum #transpose nicht funktioniert hat. –
Die Antwort, obwohl ich nicht so schreiben kann, ist, dass die Anzahl der Elemente für diese Operation gleich sein muss. –