簡體   English   中英

將兩個數組組合成一個散列

[英]Combining two arrays into a hash

我正在嘗試將兩個數組組合成一個散列。

@sample_array = ["one", "Two", "Three"]
@timesheet_id_array = ["96", "97", "98"]

我想將結果輸出到一個名為@hash_array 的哈希中。 是否有一種簡單的方法可以將兩者結合在一個代碼塊中,以便在最后調用 puts 時,它在控制台中看起來像這樣

{"one" => "96", "Two" => "97", "Three" => "98"}

我認為這可以在一兩行代碼中完成。

試試這個

keys = [1, 2, 3]
values = ['a', 'b', 'c']
Hash[keys.zip(values)]

謝謝

@hash_array = {}
@sample_array.each_with_index do |value, index|
  @hash_array[value] = @timesheet_id_array[index]
end

Imho看起來最好:

[:a,:b,:c].zip([1,2,3]).to_h

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

Nic 博士建議 2 個選項在http://drnicwilliams.com/2006/10/03/zip-vs-transpose/ 中得到了很好的解釋

@hash_array = {}
0.upto(@sample_array.length - 1) do |index|
  @hash_array[@sample_array[index]] = @timesheet_id_array[index]
end
puts @hash_array.inspect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM