2016-05-08 17 views
-2

Ich habe einen Hash wie so.Iterieren durch Array von Hashes

h = {"name"=>"United States House of Representatives TX-21", 
    "divisionId"=>"ocd-division/country:us/state:tx/cd:21", 
    "levels"=>["country"], 
    "roles"=>["legislatorLowerBody"], 
    "officials"=>[{"name"=>"Lamar Smith", 
        "address"=>[ 
         {"line1"=>"2409 rayburn house office building", 
         "city"=>"washington", 
         "state"=>"DC", 
         "zip"=>"20515" 
         } 
        ], 
        "party"=>"Republican", 
        "phones"=>["(202) 225-4236"], 
        "urls"=>["http://lamarsmith.house.gov/"], 
        "photoUrl"=>"http://...", 
        "channels"=>[ 
         {"type"=>"Facebook", "id"=>"LamarSmithTX21"}, 
         {"type"=>"Twitter", "id"=>"LamarSmithTX21"}, 
         {"type"=>"YouTube", "id"=>"lamarsmithtexas21"} 
        ] 
        } 
        ] 
    } 

ich versucht bin eine if Aussage zu tun, dass dieses Array in ein anderes Array schieben aufgerufen @nationalOffices wenn der levels Hash == country. Das Problem ist der Wert des Levels Hash ist ein Array. Ich bin mir nicht sicher, wie ich das machen soll. Jeder Rat würde geschätzt werden.

+0

Ich formatierte Ihren Hash (nicht Array), so dass es verstanden werden kann, aber ich habe nichts mit Ihrem letzten Absatz, weil ich es nicht verstehe. Wenn Sie ein Beispiel geben, sollten Sie drei Dinge tun: 1. Reduzieren Sie die Größe des Beispiels auf das Minimum, das notwendig ist, um Ihren Standpunkt zu verdeutlichen; 2. zeigen Sie Ihre erwartete oder gewünschte Ausgabe; und 3. Weisen Sie jedem Eingabeobjekt eine Variable zu (zB 'h = {...}' wie oben), so dass die Leser auf diese Variablen (hier "h") in Antworten und Kommentaren verweisen können, ohne sie definieren zu müssen Sie. –

+0

Sie verwenden das Wort Array auf eine verwirrende Weise hier. Ist das ein Hash von vielen in einem Array? Wenn du sagst: "Schiebe dieses Array in ein anderes Array", meinst du, schieb diese _hash_ in '@ nationalOffices'? Geben Sie mehr Kontext für die tatsächlichen Daten ein, mit denen Sie arbeiten. –

Antwort

0

Sie würden darauf zugreifen, indem Sie tiefer in den Hash z. array[0]["levels"]. Sie müssten diese API-Antwort wahrscheinlich in einer Variablen speichern und dann hineinarbeiten.
Wenn Sie mehr über Hashes und Arrays erfahren möchten, ist dies ein ziemlich gutes Tutorial: http://www.tutorialspoint.com/ruby/ruby_hashes.htm

0

@nationalOffices < < my_array wenn Ebenen == Land? : #else Aussage geht hier