簡體   English   中英

將兩個不相等的數組組合成哈希值

[英]Combine two unequal arrays to hash

我需要幫助創建表示Ruby中兩個數組的每個可能組合的哈希。

我有的:

numbers = [1, 2]
letters = ['q', 'w', 'e', 'r']

我需要的:

combination = [
{ number: 1, letter: 'q' },
{ number: 1, letter: 'w' },
{ number: 1, letter: 'e' },
{ number: 1, letter: 'r' },
{ number: 2, letter: 'q' },
{ number: 2, letter: 'w' },
{ number: 2, letter: 'e' },
{ number: 2, letter: 'r' }
]

重要提示:我永遠不會知道“數字”或“字母”數組包含多少項(只是它們的長度永遠不相等),這取決於每種情況。

到目前為止,讓我最接近目標,但是這一切都將所有字母提交到每個號碼,我不明白如何進一步沒有錯誤:

  combination = Hash.new []
  numbers.each do |nr|
    combination[:number => nr] = [:letter => letters]
  end

產品可能是您正在尋找的:

numbers.product(letters).map { |n, l| {number: n, letter: l} }
# => [{:number=>1, :letter=>"q"}, {:number=>1, :letter=>"w"}, {:number=>1, :letter=>"e"}, {:number=>1, :letter=>"r"}, {:number=>2, :letter=>"q"}, {:number=>2, :letter=>"w"}, {:number=>2, :letter=>"e"}, {:number=>2, :letter=>"r"}]

這應該做的工作:

combination = []
numbers.each do |n| 
  letters.each { |l|  combination << {number: n, letter: l} }
end

暫無
暫無

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

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