Ruby: ¿Cómo puedo hacer que estos objetos de la misma?
Pregunta
Así que tengo los siguientes hashes / matrices:
{"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
{"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
Esa primera almohadilla tiene una matriz para number
mientras que el segundo no.
Está causando estragos tratando de bucle a través de los datos (especialmente cuando sólo hay un seguimiento de notas / combo).
En última instancia Estoy queriendo ser capaz de hacer un bucle en cada each
combinado de seguimiento / notas.
Solución
h1={"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
h2={"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
[h1["number"]].flatten
=> [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}, {"tracking"=>"9102901001301227214058"}]
[h2["number"]].flatten
=> [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}]
Ahora, cada uno va a ser un array de hashes y se puede utilizar each
para iterar a través de ellos.
Otros consejos
Algo como esto?
hash["number"] = [ hash["number"] ] unless hash["number"].kind_of?(Array)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow