Sharon Yang
Sharon Yang

Reputation: 279

How to combine multiple arrays of the same size in ruby

If I have 3 or more arrays I want to combine into one, how do I do that in ruby? Would it be a variation on zip?

For example, I have

a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9]

and I would like to have an array that looks like

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Upvotes: 7

Views: 1245

Answers (2)

Cary Swoveland
Cary Swoveland

Reputation: 110675

[a,b,c].transpose

is all you need. I prefer this to zip 50% of the time.

Upvotes: 9

bjhaid
bjhaid

Reputation: 9762

I would use Array#zip as below:

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
a.zip(b, c)
#=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Upvotes: 4

Related Questions