In alcuni casi, la necessità di convertire un array in un hash e viceversa emerge. In questa guida, discuteremo di come puoi convertire un array in un hash in Ruby.
#1 - Utilizzo di ogni metodo
Supponiamo di avere un array che desideri convertire in una stringa in cui la chiave dell'hash è l'elemento array e il valore dell'hash è l'elemento dell'array + 10.
Per fare ciò, possiamo usare ogni metodo per iterare ogni elemento nell'array e convertirlo in una stringa.
VAR = [1,2,3,4,5,6,7,8,9,10]L'esempio sopra convertirà ogni elemento nell'array in un tasto hash abbinato al suo valore.
Il dizionario risultante è come mostrato:
1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20#2 - Usando ciascuno_with_object
Ruby fornisce un altro metodo chiamato ciascuno_with_object. Il metodo esegue il metodo di ciascuno dopo aver creato un nuovo oggetto che puoi formare dagli elementi dell'array.
Esempio:
VAR = [1,2,3,4,5,6,7,8,9,10]La funzionalità dell'esempio sopra è simile all'uso di ciascun metodo.
Il valore hash risultante è come:
1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20Per vedere come la funzione itera sugli elementi nell'array e li converte in un hash, è possibile aggiungere un elemento put all'interno del blocco come:
VAR = [1,2,3,4,5,6,7,8,9,10]Se si esegue il codice sopra, dovresti ottenere una vista gerarchica del processo di creazione di hash.
#3 - Utilizzo del metodo TO_H
Il metodo TO_H è definito nella classe Array. Funziona per convertire un array in un hash sotto forma di coppie di valore chiave.
Esempio:
var = [[1,2], [3,4], [5,6]]Il metodo converte ogni array nidificato in coppie di valore chiave.
1 => 2, 3 => 4, 5 => 6Il metodo accetta anche un blocco. Se viene specificato un blocco, il metodo restituisce il risultato del blocco su ciascun elemento dell'array.
Ad esempio, quello che segue è un metodo che mostra se il valore è vero o falso.
var = [1,2]Il dizionario risultante:
false => 1, true => 2In chiusura
In questa guida, abbiamo discusso di come convertire un array in un hash usando vari metodi.