D'accord, voici l'affaire, je cherche depuis des lustres sur Google pour trouver une solution à ce problème et bien qu'il y en ait beaucoup, ils ne semblent pas faire le travail que je recherche.
Fondamentalement, j'ai un tableau structuré comme ça
["item 1", "item 2", "item 3", "item 4"]
Je veux le convertir en hachage pour qu'il ressemble à ceci
{ "item 1" => "item 2", "item 3" => "item 4" }
c'est-à-dire que les éléments qui sont sur les index «pairs» sont les clés et les éléments sur les index «impairs» sont les valeurs.
Des idées comment faire cela proprement? Je suppose qu'une méthode de force brute consisterait simplement à extraire tous les index pairs dans un tableau séparé, puis à les contourner pour ajouter les valeurs.
*
s'appelle l' opérateur splat . Il prend un tableau et le convertit en une liste littérale d'éléments. Donc*[1,2,3,4]
=>1, 2, 3, 4
. Dans cet exemple, ce qui précède équivaut à faireHash["item 1", "item 2", "item 3", "item 4"]
. EtHash
a une[]
méthode qui accepte une liste d'arguments (en créant des clés d'index pairs et des valeurs d'index impaires), maisHash[]
n'accepte pas de tableau, nous splatons donc le tableau en utilisant*
.