Ruby: Wie kann ich diese die gleichen Objekte?
Frage
So habe ich die folgenden Hashes / Arrays:
{"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
{"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
Das erste Hash hat eine Anordnung für number
während der zweiten dies nicht tut.
Es ist Chaos anzurichten, um eine Schleife durch die Daten versucht (speziell, wenn es nur eine Tracking / Notizen Combo).
Am Ende der Lage sein, eine each
Schleife auf jedem Tracking / Notizen Combo Ich bin zu wollen tun.
Lösung
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"}]
Es wird nun jeweils ein Array von Hashes und Sie können each
zu durchlaufen sie verwenden.
Andere Tipps
So etwas wie das?
hash["number"] = [ hash["number"] ] unless hash["number"].kind_of?(Array)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow