Konvertere matrise til hash rubin

Konvertere matrise til hash rubin
Både matriser og ordbøker deler en felles egenskap i alle større programmeringsspråk: de er både fleksible og skalerbare datastrukturer som hjelper til med å organisere og refaktorere kode.

I visse tilfeller kommer behovet for å konvertere en matrise til en hasj og omvendt kommer opp. I denne guiden skal vi diskutere hvordan du kan konvertere en matrise til en hasj i Ruby.

#1 - Bruke hver metode

Anta at du har en matrise du ønsker å konvertere til en streng der tasten til hasj er arrayelementet, og verdien av hasj er matrisens element + 10.

For å gjøre dette, kan vi bruke hver metode for å iterere hvert element i matrisen og konvertere det til en streng.

var = [1,2,3,4,5,6,7,8,9,10]
my_hash =
var.Hver gjør | i |
my_hash [i] = i+10
slutt
setter my_hash

Eksemplet ovenfor vil konvertere hvert element i matrisen til en hasjtast sammen med verdien.

Den resulterende ordboken er som vist:

1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20

#2 - Bruk hver_with_object

Ruby gir en annen metode som heter Every_with_object. Metoden utfører hver metode etter å ha opprettet et nytt objekt du kan danne fra matriseelementene.

Eksempel:

var = [1,2,3,4,5,6,7,8,9,10]
var.hver_with_object () do | i, my_hash |
my_hash [i] = i+10
slutt

Funksjonaliteten til eksemplet ovenfor ligner på å bruke hver metode.

Den resulterende hasjverdien er som:

1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20

For å se hvordan funksjonen itererer over elementene i matrisen og konverterer dem til en hasj, kan du legge til et PUTS -element inne i blokken som:

var = [1,2,3,4,5,6,7,8,9,10]
var.hver_with_object () do | i, my_hash |
my_hash [i] = i+10
setter my_hash
slutt

Hvis du kjører koden over, bør du få et hierarkisk syn på hasjopprettelsesprosessen.

#3 - Bruke TO_H -metoden

TO_H -metoden er definert i matriseklassen. Det fungerer for å konvertere en matrise til en hasj i form av nøkkelverdipar.

Eksempel:

var = [[1,2], [3,4], [5,6]]]
setter var.to_h

Metoden konverterer hvert nestet matrise til nøkkelverdipar.

1 => 2, 3 => 4, 5 => 6

Metoden godtar også en blokk. Hvis noen blokk er spesifisert, returnerer metoden resultatet av blokken på hvert arrayelement.

Følgende er for eksempel en metode som viser om verdien er sann eller falsk.

var = [1,2]
setter var.to_h | i | [Jeg.til og med?, Jeg]

Den resulterende ordboken:

False => 1, true => 2

I Avslutning

I denne guiden diskuterte vi hvordan du konverterer en matrise til en hasj ved hjelp av forskjellige metoder.