Erstellen von array von hashes in ruby
Ich möchte erstellen Sie ein array von hashes in ruby:
arr[0]
"name": abc
"mobile_num" :9898989898
"email" :abc@xyz.com
arr[1]
"name": xyz
"mobile_num" :9698989898
"email" :abcd@xyz.com
Habe ich gesehen, hash und array Dokumentation. In allem fand ich, ich muss etwas tun
wie
c = {}
c["name"] = "abc"
c["mobile_num"] = 9898989898
c["email"] = "[email protected]"
arr << c
Durchlaufen wie in den obigen Anweisungen in der Schleife, die ermöglicht es mir zu füllen arr
. Ich eigentlich rowofrows mit einer Zeile wie ["abc",9898989898,"[email protected]"]
. Gibt es eine bessere Möglichkeit, dies zu tun?
Können Sie das klären, das bisschen Ihre Frage: ich eigentlich rowofrows mit einer Zeile wie ["abc",9898989898,"[email protected]"]
InformationsquelleAutor Chirag Rupani | 2012-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, was meinen Sie mit "rowofrows" ist ein array von arrays, hier eine Lösung zu dem, was ich denke, Sie versuchen zu erreichen:
Wird bei der Ausgabe des array-hashes:
array_of_hashes = array_of_arrays.collect{|each|Hash[%w{name number email}.zip(each)]}
Nice one akuhn. Ich mag, dass.
Sie sind willkommen, Ruby ist so wunderbar knapp!
InformationsquelleAutor jboursiquot
können Sie zunächst definieren Sie das array als
anschließend definieren Sie die hashes nacheinander wie folgt, und schieben Sie Sie in das array.
tun, und dann
diese fügt den hash in das array . Ebenso können Sie drücken Sie mehr-hashes erstellen Sie ein array von hashes.
InformationsquelleAutor aelor
Konnte man auch direkt innerhalb der push-Methode wie diese:
Zunächst definieren, array:
@shopping_list_items = []
Und ein neues Element hinzufügen zu Ihrer Liste:
@shopping_list_items.push(description: "Apples", amount: 3)
Geben wird, Sie so etwas wie dieses:
=> [{:description=>"Apples", :amount=>3}]
InformationsquelleAutor miriamtocino