2009-04-23 1 views

Odpowiedz

102
str_array = int_array.map(&:to_s) 
+0

Ciągle otrzymuję dane wyjściowe jako [11, 12] .. i nie pomogłem –

+0

Jak sprawdzasz typ twojego wyjścia? – srboisvert

+1

Działa w Railsach, ponieważ dodaje Symbol # to_proc – dylanfm

43
str_array = int_array.collect{|i| i.to_s} 
+0

zrobił pomoc .. :( –

+1

To działało w porządku dla mnie – srboisvert

+1

jego pracy w porządku dla mnie zbyt .. dziękuję –

4

Uruchom IRB

irb(main):001:0> int_array = [11,12] 
=> [11, 12] 
irb(main):002:0> str_array = int_array.collect{|i| i.to_s} 
=> ["11", "12"] 

Twój problem jest prawdopodobnie gdzieś indziej. Być może zamieszanie zakresu?

-2

Zwraca int

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

Zwraca String

y = 1,2,3,4,5 # => ["1", "2", "3", "4", "5"] 
15

mapę i zbierać funkcje będą działać tak samo tutaj.

int_array = [1, 2, 3] 

str_array = int_array.map { |i| i.to_s } 
=> str_array = ['1', '2', '3'] 

Można współpracy to z jednej linii:

array = [1, 2, 3] 
array.map! { |i| i.to_s } 

i można użyć naprawdę fajny skrót dla PROC: (https://stackoverflow.com/a/1961118/2257912)

array = [1, 2, 3] 
array.map!(&:to_s) 
10

array.map (&: to_s) => tablica liczb całkowitych w tablicy łańcuchów znaków

array.map (&: to_i) => szereg łańcuchów na tablicę liczb