gpt4 book ai didi

ruby - 包含数组的散列到 ruby​​ 中的散列数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:02 25 4
gpt4 key购买 nike

我已经阅读了很多帖子,但似乎没有人这样做,这有点棘手。

假设我有一个散列,其中包含一个数组作为其值之一。

hash = {
:a => 'one',
:arr => [
{:id => 'ten', :amount => 10, :b => 'two'},
{:id => 'twenty', :amount => 20, :b => 'two'},
{:id => 'apple', :amount => 7, :b => 'applesauce'}
],
:c => 3
}

我想将其转换为散列数组(其大小为所包含数组的大小),如下所示:

# => [
{:a => 'one', :id => 'ten', :amount => 10, :b => 'two', :c => 3},
{:a => 'one', :id => 'twenty', :amount => 20, :b => 'two', :c => 3},
{:a => 'one', :id => 'apple', :amount => 7, :b => 'applesauce', :c => 3}
]

转换应该维护数组内外的任何键/值对,理想情况下我可以传入数组的键来要求它执行操作:

flatten_hash_array(hash, :arr)

我意识到 Array 类中的 Ruby flatten 不是我们需要的。捕获一个动词!任何帮助将不胜感激。

最佳答案

这应该可以完成工作,除了有效性检查。

def flatten_hash_array(hash, key)
hash[key].map {|entry| entry.merge(hash.reject {|k| k == key})}
end

关于ruby - 包含数组的散列到 ruby​​ 中的散列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132771/

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