2016-11-21 16 views
5

Jestem nowy w Ruby i próbuję utworzyć program, który automatyzuje formatowanie dla danych ciągów i tablic. Jedna funkcja autoformatowania, którą próbuję rozgryźć, to jedna dla tablic. Więc powiedzmy, że mam tablicę, jak w przykładzie poniżejZamień tablicę ruby ​​na czysty ciąg kolumn?

myArray = ["a", "b", "c"] 

i chcę, aby przekształcić go w układzie kolumnowym ciąg tak, że puts myString da

`1) a` 
`2) b` 
`3) c` 

Jak bym go o to robi? Najbliższą rzeczą, jaką mogę znaleźć, jest użycie .each, co nie jest tym, czego chcę, nie mogę mieć osobnego wpisu dla każdej linii. Musi to być jeden ciąg z liniowymi przerwami.

Każda pomoc będzie mile widziane, z góry dzięki

+0

Co o tym 'myArray.each_with_index.map {| ja, j | "# {i + 1}) # {j}"}. join ("\ n") ' –

Odpowiedz

9

Można użyć .map z .with_index:

myArray = ["a", "b", "c"] 

myStr = myArray.map.with_index(1) { |el, i| "#{i}) #{el}" }.join("\n") 
puts myStr 

Wyjścia:

1) a 
2) b 
3) c 
+0

Dla przypadku użycia OP, powinieneś chcieć' # {i + 1} ', ale to jest świetna odpowiedź. –

+1

Ah dobry połów - dziękuję. – Anthony

+0

Bez obaw. Twoja odpowiedź jest dość elegancka. –