2009-04-23 19 views

Respuesta

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

sigo obteniendo la salida como [11, 12] ... no ayudé –

+0

¿Cómo está comprobando el tipo de salida? – srboisvert

+1

Esto funciona en Rails porque agrega Symbol # to_proc – dylanfm

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

didnt help .. :( –

+1

Esto funcionó bien para mí. – srboisvert

+1

funciona bien para mí también .. gracias –

4

Puesta en servicio 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"] 

Su problema probablemente sea otro. Tal vez una confusión de alcance?

-2

int

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

devuelve cadena

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

mapa y recoja las funciones funcionará lo mismo aquí.

int_array = [1, 2, 3] 

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

Puede lograr esto con una línea:

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

y se puede utilizar un atajo muy fresco para proc: (https://stackoverflow.com/a/1961118/2257912)

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

array.map (&: to_s) => matriz de enteros en una matriz de cadenas

array.map (&: to_i) => array de cadenas en una matriz de enteros

Cuestiones relacionadas