Hola, con esto ya tengo bastante por hoy (y mañana XD):
Tengo este Hash:
hash = {“A”=>111,“B”=>222,“C”=>“lalala”}
Y quiero convertirlo en esto:
texto = “A=111;B=222;C=lalala”
Se me ocurre primero hacer un Hash.to_a:
hash.to_a
=> [[“A”, 111], [“B”, 222], [“C”, “lalala”]]
Pero luego no sé seguir, ¿alguna sugerencia?
Mil gracias.
El Miércoles, 12 de Marzo de 2008, Iñaki Baz C. escribió:
=> [[“A”, 111], [“B”, 222], [“C”, “lalala”]]
Pero luego no sé seguir, ¿alguna sugerencia?
Para complicarlo un poco más puede ocurrir que algunas “keys” del Hash
no
tenga valor:
hash = {“A”=>111,“B”=>222,“C”=>“lalala”,“D”=>nil}
El Miércoles, 12 de Marzo de 2008, Iñaki Baz C. escribió:
=> [[“A”, 111], [“B”, 222], [“C”, “lalala”]]
Pero luego no sé seguir, ¿alguna sugerencia?
Mil gracias.
Bueno, no es muy muy elegante pero algo es algo:
hash = {“A”=>111,“B”=>222,“C”=>“lalala”}
text_value = “”
hash.each_pair { |key,value| text_value << “;” + key.to_s + “=” +
value.to_s }
return text_value
Ya es suficiente asÃ, ¿no?
Hola,
Tengo este Hash:
hash = {“A”=>111,“B”=>222,“C”=>“lalala”}
Y quiero convertirlo en esto:
texto = “A=111;B=222;C=lalala”
supongo que hay más soluciones, pero ésta te valdrÃa
hash.map{|k,v| “#{k}=#{v}”}.join(’;’)
Para complicarlo un poco más puede ocurrir que algunas “keys” del Hash no
tenga valor:
con lo de arriba te deberÃa soportar ese caso también
saludos,
javier ramÃrez
El Miércoles, 12 de Marzo de 2008, javier ramirez escribió:
hash.map{|k,v| “#{k}=#{v}”}.join(’;’)
Perfecto, gracias 
On Mar 12, 2008, at 24:56 , Iñaki Baz C. wrote:
=> [[“A”, 111], [“B”, 222], [“C”, “lalala”]]
Pero luego no sé seguir, ¿alguna sugerencia?
Como Hash mixinea (con perdon) Enumerable y Hash#each itera por los
pares puedes tirar de map directamente de esta manera:
hash.map {|k,v| "#{k}=#{v}"}.join(';')
– fxn