die Iteration von hash-Sammlung
{"Journal"=>[[4, -785.0],
[13, -21.9165000915527],
[14, -213.008995056152],
[15, -50.074499130249]]}
Wie kann man die Iteration dieser hash in Ruby, und wie wäre Sie zu trennen, keys & Werte?
- wenn Sie brauchen, um zu Durchlaufen und eine hashmap, Sie sind vielleicht mit den falschen container
- nicht unbedingt - das ist nicht ungewöhnlich. Beispiel: serialisieren von Daten.
- Warten Sie, Sie haben einen hash, der mit einem einzelnen Schlüssel/Wert-paar, dessen Wert ist ein array von arrays?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ruby hat eine einheitliche iteration interface. Alle Sammlungen, die in Ruby eine Methode namens
each
, die eine Iteration über jedes element der Kollektion. Beachten Sie jedoch, dass die explizite iteration ist ein code smell. Sie sollten vor allem höhere-Ebene-Iteratoren wiemap
,reduce
,select
,find
,reject
und so.In diesem speziellen Fall, wo die Sammlung ist eine
Hash
jedes element, das ergab blockieren, ist eine zwei-element-array, bestehend aus Schlüssel und Wert:Dank Ruby ' s destructuring binden, können Sie einfach binden Sie die zwei Elemente des Arrays auf zwei Variablen in Ihrem block, und Sie werden nicht das Bedürfnis haben, ständig nehmen Sie die array auseinander:
Fall verändern wollen, die arrays innerhalb Arrays zu einer Karte dazu: