2012-10-21 5 views
2

Я хотел уменьшить многомерный массив в меньший многомерный массив. Позвольте мне опубликовать то, что я имею в виду. Вот мой вход/начиная массив:Уменьшить многомерный массив в меньшем многомерном массиве

[ 
    [ 
    [ ["Armando", "P"], ["Dave", "S"] ], 
    [ ["Richard", "R"], ["Michael", "S"] ], 
    ], 
    [ 
    [ ["Allen", "S"], ["Omer", "P"] ], 
    [ ["David E.", "R"], ["Richard X.", "P"] ] 
    ] 
] 

И я думаю, что это четыре одномерный массив, который я хочу, чтобы свести к:

["Armando", "P"], ["Dave", "S"], ["Richard", "R"], ["Michael", "S"], ["Allen", "S"],["Omer", "P"] , ["David E.", "R"], ["Richard X.", "P"] 

Как я могу сделать это в Ruby?

+0

Вы можете просто перебрать все эти уровни и построить свой результат. Вы пробовали это? :) –

+0

@SergioTulentsev: Но 'Array # flatten' делает это за вас. – Linuxios

ответ

3

Использование Array#flatten(levels):

xs.flatten(2) 
+0

это новый трюк :) –

+0

@tokland: Это возвращает => [«Армандо», «П», «Дэйв», «С», «Ричард», «Р», «Майкл», «С», «Allen», «S», « Omer», «P», «David E.», «R», «Richard X.», «P»] – OneMoreError

+0

Я хочу поддерживать последний уровень! – OneMoreError

Смежные вопросы