给定array1:
[:lien_amount, :contact_number] 给定Array2:
[[14646.75, nil], [69454.63, nil], [24989.53, nil], [74455.69, nil], [140448.19, nil], [12309.34, nil]]我要:
{
lien_amount: [14646.75, 69454.63, 24989.53, 74455.69,140448.19, 12309.34],
contact_number: [nil, nil, nil, nil, nil, nil]
} 因此,我希望将一个数组的键与数组数组中的值匹配。
我正在寻找一个one-line-of-code解决方案。我试过的是:
array2.flat_map {|a| a.zip(array1)}这将返回以下内容:
[[14646.75, :lien_amount], [nil, :contact_number], [69454.63, :lien_amount], [nil, :contact_number], ...不是我要找的东西。但是给出了我想要的解决方案的类型。
发布于 2018-04-29 04:58:43
试着做以下几点:
array1.zip(array2.transpose).to_h
array2.transpose
# => [[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34], [nil, nil, nil, nil, nil, nil]]
array1.zip(array2.transpose)
# => [[:lien_amount, [14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34]], [:contact_number, [nil, nil, nil, nil, nil, nil]]]
array1.zip(array2.transpose).to_h
# => {:lien_amount=>[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34], :contact_number=>[nil, nil, nil, nil, nil, nil]}发布于 2018-04-29 04:09:46
arr1 = [:lien_amount, :contact_number]
arr2 = [[14646.75, nil], [69454.63, nil], [24989.53, nil], [74455.69, nil],
[140448.19, nil], [12309.34, nil]]
[arr1, arr2.transpose].transpose.to_h
#=> {:lien_amount=>[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34],
# :contact_number=>[nil, nil, nil, nil, nil, nil]}步骤如下。
a = arr2.transpose
#=> [[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34],
# [nil, nil, nil, nil, nil, nil]]
b = [arr1, a]
#=> [[:lien_amount, :contact_number],
# [[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34],
# [nil, nil, nil, nil, nil, nil]]]
c = b.transpose
#=> [[:lien_amount, [14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34]],
# [:contact_number, [nil, nil, nil, nil, nil, nil]]]
c.to_h
#=> {:lien_amount=>[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34],
# :contact_number=>[nil, nil, nil, nil, nil, nil]}https://stackoverflow.com/questions/50083021
复制相似问题