2009-04-23 6 views

Répondre

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

Je reçois toujours la sortie en tant que [11, 12] .. je n'ai pas aidé –

+0

Comment vérifiez-vous le type de votre sortie? – srboisvert

+1

Cela fonctionne dans Rails car il ajoute le symbole # to_proc – dylanfm

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

n'a pas aidé .. :( –

+1

Cela a bien fonctionné pour moi – srboisvert

+1

son fonctionnement bien pour moi aussi .. merci –

4

Mise en service 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"] 

Votre problème est probablement ailleurs. Peut-être une confusion de portée?

-2

Int Retours

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

Retourne une chaîne

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

carte et fonctions fonctionnera recueillir la même chose ici.

int_array = [1, 2, 3] 

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

Vous pouvez acheive cela avec une ligne:

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

et vous pouvez utiliser un raccourci vraiment cool pour proc: (https://stackoverflow.com/a/1961118/2257912)

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

array.map (&: to_s) => tableau d'entiers dans un tableau de chaînes

array.map (&: to_i) => tableau de chaînes dans un tableau d'entiers

Questions connexes