Konversikan Array ke Hash Ruby

Konversikan Array ke Hash Ruby

Baik array maupun kamus memiliki kesamaan dalam semua bahasa pemrograman utama: keduanya merupakan struktur data yang fleksibel dan dapat diskalakan yang membantu mengatur dan memfaktorkan ulang kode.

Dalam kasus tertentu, kebutuhan untuk mengonversi array ke hash dan sebaliknya muncul. Dalam panduan ini, kita akan membahas bagaimana Anda dapat mengonversi array menjadi hash di Ruby.

#1 – Menggunakan setiap metode

Misalkan Anda memiliki array yang ingin Anda ubah menjadi string di mana kunci hash adalah elemen array, dan nilai hash adalah elemen array + 10.

Untuk melakukan ini, kita dapat menggunakan metode each untuk mengulangi setiap item dalam array dan mengubahnya menjadi string.

var = [1,2,3,4,5,6,7,8,9,10]

my_hash = {}

var.each do |i|

my_hash[i] = i+10

end

puts my_hash

Contoh di atas akan mengonversi setiap item dalam array menjadi kunci hash yang dipasangkan dengan nilainya.

Kamus yang dihasilkan adalah seperti yang ditunjukkan:

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

#2 – Menggunakan each_with_object

Ruby menyediakan metode lain yang disebut each_with_object. Metode mengeksekusi setiap metode setelah membuat objek baru yang dapat Anda bentuk dari elemen array.

Contoh:

var = [1,2,3,4,5,6,7,8,9,10]

var.each_with_object({}) do |i, my_hash|

my_hash[i] = i+10

end

Fungsionalitas dari contoh di atas mirip dengan menggunakan metode masing-masing.

Nilai hash yang dihasilkan adalah sebagai berikut:

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

Untuk melihat bagaimana fungsi berulang pada item dalam array dan mengonversinya menjadi hash, Anda dapat menambahkan elemen puts di dalam blok sebagai:

var = [1,2,3,4,5,6,7,8,9,10]

var.each_with_object({}) do |i, my_hash|

my_hash[i] = i+10

puts my_hash

end

Jika Anda menjalankan kode di atas, Anda akan mendapatkan tampilan hierarkis dari proses pembuatan hash.

#3 – Menggunakan metode to_h

Metode to_h didefinisikan dalam kelas array. Ini berfungsi untuk mengubah array menjadi hash dalam bentuk pasangan nilai kunci.

Contoh:

var = [[1,2], [3,4], [5,6]]

puts var.to_h

Metode ini mengonversi setiap array bersarang menjadi pasangan nilai kunci.

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

Metode ini juga menerima blok. Jika ada blok yang ditentukan, metode mengembalikan hasil blok pada setiap elemen array.

Misalnya, berikut ini adalah metode yang menunjukkan apakah nilainya benar atau salah.

var = [1,2]

puts var.to_h {|i| [i.even?, i]}

Kamus yang dihasilkan:

{false=>1, true=>2}

Sebagai penutup

Dalam panduan ini, kami membahas cara mengonversi array menjadi hash menggunakan berbagai metode.

Related Posts