首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并数组与数组数组

合并数组与数组数组
EN

Stack Overflow用户
提问于 2018-04-29 03:10:09
回答 2查看 71关注 0票数 1

给定array1:

代码语言:javascript
复制
 [:lien_amount, :contact_number] 

给定Array2:

代码语言:javascript
复制
[[14646.75, nil], [69454.63, nil], [24989.53, nil], [74455.69, nil], [140448.19, nil], [12309.34, nil]]

我要:

代码语言:javascript
复制
{
  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解决方案。我试过的是:

代码语言:javascript
复制
array2.flat_map {|a| a.zip(array1)}

这将返回以下内容:

代码语言:javascript
复制
[[14646.75, :lien_amount], [nil, :contact_number], [69454.63, :lien_amount], [nil, :contact_number], ...

不是我要找的东西。但是给出了我想要的解决方案的类型。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-29 04:58:43

试着做以下几点:

array1.zip(array2.transpose).to_h

代码语言:javascript
复制
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]}
票数 4
EN

Stack Overflow用户

发布于 2018-04-29 04:09:46

代码语言:javascript
复制
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]}

步骤如下。

代码语言:javascript
复制
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]}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50083021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档