當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Array轉Hash用法及代碼示例


在本文中,我們將討論如何將數組轉換為哈希紅 gems 。當我們有數組格式的數據並且需要將其組織成鍵值對以便於訪問和操作時,將數組轉換為哈希會很有用。

使用 Hash::[] 構造函數將數組轉換為哈希

Hash::[] 構造函數方法直接從數組創建哈希,其中數組中的每對元素都被視為鍵值對。

用法:

Hash[*array]

例子:在此示例中,我們將數組轉換為哈希,其中使用 Hash::[] 構造函數將數組中的每個元素轉換為鍵值對

# Define an array with elements representing key-value pairs
array = [:a, 1, :b, 2, :c, 3]

# Convert an array into a hash Using Hash::[] constructor
# Convert the array directly into a hash using the Hash::[] constructor
hash = Hash[*array]
# Output the resulting hash
puts hash.inspect  # Output: {:a=>1, :b=>2, :c=>3}

輸出
{:a=>1, :b=>2, :c=>3}

使用 Array#each_slice 將數組轉換為哈希

Array#each_slice 方法允許以塊的形式迭代數組,其中每個塊包含兩個表示鍵值對的元素。然後,使用Hash::[]構造函數中,我們可以將這些對轉換為哈希值。

用法:

Hash[*array.each_slice(2).to_a.flatten]

例子:在此示例中,我們使用 Array#each_slice 成對迭代數組,然後展平結果數組並使用 Hash::[] 將它們轉換為哈希值

# Program in ruby to convert an array into a hash  using Array#each_slice and Hash::[] constructor

# Define an array with elements representing key-value pairs
array = [:a, 1, :b, 2, :c, 3]
# Iterate over the array in pairs using each_slice(2), then flatten the resulting arrays
# and convert them into a hash using Hash::[]
hash = Hash[*array.each_slice(2).to_a.flatten]
# Output the resulting hash
puts hash.inspect  # Output: {:a=>1, :b=>2, :c=>3}

輸出
{:a=>1, :b=>2, :c=>3}

使用帶有塊的 Hash#[] 將數組轉換為哈希

在此方法中,我們迭代數組並單獨處理每個元素。然後我們可以指定一個塊,您可以在其中定義每個元素應如何轉換為鍵值對。

用法:

array.each_with_object({}) { |element, hash| hash[element_key] = element_value }


例子:在此示例中,我們使用以下方法成對迭代數組each_slice(2)並將每對元素分配為新哈希中的鍵值對。

# Define an array with elements representing key-value pairs
array = [:a, 1, :b, 2, :c, 3]
#  convert an array into a hash Using Hash#[] with a block
# Iterate over the array in pairs using each_slice(2)
# For each pair, assign the first element as the key and the second element as the value
hash = array.each_slice(2).each_with_object({}) { |(key, value), h| h[key] = value }
# Output the resulting hash
puts hash.inspect  # Output: {:a=>1, :b=>2, :c=>3}

輸出
{:a=>1, :b=>2, :c=>3}

相關用法


注:本文由純淨天空篩選整理自abhaystriver大神的英文原創作品 How to convert Array to Hash in Ruby?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。