2012-06-29 8 views
6

Zastanawiałem się, w jaki sposób mogę wygenerować następującą tablicę używając zakresów w RubyRuby utworzenie specjalnej tablicy z zakresu

["00","00","01","01","02", "02", ...... "10", "10"] 

chcę powtórzyć każdy element dwukrotnie ów część, która szukam odpowiedź na. mogę generować pojedyncze elementy jak poniżej

("00".."10").to_a 

wiem, że mogę to zrobić za pomocą pętli itp ale szukam prostsze kodu jeden wiersz

Thanks

Odpowiedz

6
("00".."10").flat_map { |x| [x, x] } 
#=> ["00", "00", "01", "01", ..., "10", "10"] 
8

Korzystając Array#zip i Array#flatten:

a = ("00".."10").to_a 
a.zip(a).flatten 
# ["00", "00", "01", "01", "02", "02", "03", "03", "04", "04", "05", "05", "06", "06", "07", "07", "08", "08", "09", "09", "10", "10"] 
+0

'to_a' jest niepotrzebne – tokland

Powiązane problemy