Okay, hier ist der Deal, ich habe lange gegoogelt, um eine Lösung dafür zu finden, und obwohl es viele gibt, scheinen sie nicht den Job zu machen, den ich suche.
Grundsätzlich habe ich ein Array wie folgt aufgebaut
["item 1", "item 2", "item 3", "item 4"]
Ich möchte dies in einen Hash konvertieren, damit es so aussieht
{ "item 1" => "item 2", "item 3" => "item 4" }
Das heißt, die Elemente in den "geraden" Indizes sind die Schlüssel und die Elemente in den "ungeraden" Indizes sind die Werte.
Irgendwelche Ideen, wie man das sauber macht? Ich nehme an, eine Brute-Force-Methode wäre, einfach alle geraden Indizes in ein separates Array zu ziehen und sie dann zu durchlaufen, um die Werte hinzuzufügen.
*
heißt der Splat- Operator. Es nimmt ein Array und konvertiert es in eine Literalliste von Elementen. Also*[1,2,3,4]
=>1, 2, 3, 4
. In diesem Beispiel entspricht das oben Gesagte dem AusführenHash["item 1", "item 2", "item 3", "item 4"]
. UndHash
hat eine[]
Methode, die eine Liste von Argumenten akzeptiert (wobei gerade Indexschlüssel und ungerade Indexwerte erstellt werden), aberHash[]
kein Array akzeptiert, also teilen wir das Array mit*
.