{ :awesomeness => 10, :height-6ren">
gpt4 book ai didi

ruby - 如何将两个嵌套数据结构合并为一个?

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:27 26 4
gpt4 key购买 nike

我需要定义一个将两个嵌套数据结构合并为一个的方法。

这是第一个散列:

[
{
"blake" => {
:awesomeness => 10,
:height => "74",
:last_name => "johnson"
},
"ashley" => {
:awesomeness => 9,
:height => 60,
:last_name => "dubs"
}
}
]

这是第二个哈希:

[
{
:first_name => "blake"
},
{
:first_name => "ashley"
}
]

结果是这样的:

[
{
:first_name => "blake",
:awesomeness => 10,
:height => "74",
:last_name => "johnson"
},
{
:first_name => "ashley",
:awesomeness => 9,
:height => 60,
:last_name => "dubs"
}
]

最佳答案

请注意,您所说的散列实际上是数组,而且它们也不一致。第一个是包含单个哈希的数组,第二个是包含两个哈希的数组。

对于给定的两个数组,如果我们调用第一个 v1 和第二个 v2,那么下面的代码应该会给出您想要的输出:

v1[0].values.map.with_index {|v, i| v2[i].merge(v)}

解释:

Hash#merge合并两个散列,因此必须使用它来获得结果。

第一个散列将来自 v1 - 我们选择 v1 数组的第一个元素,它是一个散列,并获取它的所有 它们本身就是散列 - 因此,我们在 v1[0].values 中有一个散列数组。

第二个哈希数组是 v2

现在,我们使用 Enumerable#map迭代第一个哈希数组并收集将其每个元素与 v2 中的相应元素合并的结果的方法。

关于ruby - 如何将两个嵌套数据结构合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com