Konwertuj tablicę na skrót w Ruby

Konwertuj tablicę na skrót w Ruby

W Ruby hasza odnosi się do zbioru par kluczowych. Jest ściśle podobny do tablicy w tym sensie, że może przechowywać wiele powiązanych wartości, ale indeksowanie odbywa się za pośrednictwem klawiszy, a nie liczb całkowitych. Jeśli znasz języki programowania Pythona, pomyśl o Ruby Hashes jako słownikach Python.

Z drugiej strony tablica odnosi się do uporządkowanego zbioru wartości. Możesz myśleć o tablicy jako lista elementów o określonym indeksie lub pozycji dla każdego elementu.

Możesz spotkać takie przypadki, w których musisz rozszerzyć indeks na rubin. Ułatwia to mapowanie danego zestawu wartości w tablicy do odpowiedniego formatu podobnego do słownika.

Ten samouczek obejmuje różne metody przekonwertowania danej tablicy Ruby w skrót.

Przykładowa tablica

Aby zademonstrować, w jaki sposób możemy przekonwertować tablicę na skrót w Ruby, będziemy współpracować z przykładową tablicą, która jest przedstawiona następująco:

arr = [1, „mysql”, 2, „postgresql”, 3, „sqlite”]


W takim przypadku chcemy przekonwertować tablicę na skrót, w którym wartość numeryczna działa jako klucz, a wartości ciągów są wartością skrótu.

Przekształcenie tablicy na skrót za pomocą metody TO_H

W najnowszych wersjach Ruby mamy dostęp do metody TO_H, która pozwala nam przekonwertować dwuwymiarową tablicę w rubinowy skrót.

Dlatego musimy najpierw przekonwertować tablicę jednowymiarową w dwuwymiarową tablicę.

Możemy to osiągnąć za pomocą metody każdego_slice. Ta metoda jest zdefiniowana w module rubinowym, który jest zawarty w klasie tablicy. Pozwala nam iterować elementy tablicy w plasterkach o danym rozmiarze.

Możemy użyć tej metody, jak pokazano w następującym kodzie:

arr.każdy_slice (2)
=> #


Zwraca to obiekt wyliczający, który możemy przekonwertować na tablicę za pomocą metody TO_A, jak pokazano następująco:

IRB (Main): 004: 0> ARR.każdy_slice (2).to_a
=> [[1, „mysql”], [2, „postgresql”], [3, „sqlite”]]]]


To powinno dać nam dwuwymiarową tablicę, jak pokazano wcześniej.

Na koniec możemy przekonwertować wartości na a, jak pokazano następująco:

IRB (Main): 005: 0> ARR.każdy_slice (2).to_a.to_h


Powstały skrót jest następujący:

=> 1 => "mysql", 2 => "postgresql", 3 => "sqlite"

Przekształcanie tablicy w skrót za pomocą metody skrótu :: []

Notacja:.

Aby przekonwertować tablicę na skrót za pomocą tej metody, możemy użyć następującego polecenia:

IRB (Main): 011: 0> Hash [„1”, „mysql”, „2”, „postgresql”, „3”, „sqlite”]
=> "1" => "mysql", "2" => "postgresql", "3" => "sqlite"


Powinno to zwrócić nowy skrót bez konieczności przekształcania tablicy na dwuwymiarową tablicę.

Wniosek

Omówiliśmy, w jaki sposób możesz użyć metody Array#To_h i hash :: [] do konwersji tablicy na skrót w języku programowania Ruby.