pyfl88
pyfl88

Reputation: 1710

Merge arrays inside of arrays

I have this array:

a = [[1,2,3,4,5],[3,5,6,8,12,45],[3,2,1,5,7,9,10,11],[3,5,6,8,2,1,3,4,6]]

I want to merge its inner arrays so that they become:

a = [[1,2,3,4,5,3,5,6,8,12,45],[3,2,1,5,7,9,10,11,3,5,6,8,2,1,3,4,6]]

How can I do this?

Upvotes: 1

Views: 54

Answers (1)

Arup Rakshit
Arup Rakshit

Reputation: 118261

You need to do

 a = [
     [1, 2, 3, 4, 5],
     [3, 5, 6, 8, 12, 45],
     [3, 2, 1, 5, 7, 9, 10, 11],
     [3, 5, 6, 8, 2, 1, 3, 4, 6]
 ]

a.each_slice(2).map(&:flatten)

# => [
#     [1, 2, 3, 4, 5, 3, 5, 6, 8, 12, 45],
#     [3, 2, 1, 5, 7, 9, 10, 11, 3, 5, 6, 8, 2, 1, 3, 4, 6]
# ]

Read the method each_slice(n)

Iterates the given block for each slice of n elements. If no block is given, returns an enumerator.

Upvotes: 5

Related Questions