gpt4 book ai didi

arrays - 如何在数组/哈希中递归地收集指定键的值

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

我有以下数组(没有深度限制):

 [
{
name: "foo",
age: 12,
children: [{
name: "zoo",
age: 44
},
{
name: "taz",
age: 17,
children: [{
name: 'tof',
age: 23
},
{
name: 'tok',
age: 42
}
]
}
]
},
{
name: "bar",
age: 54
}
]

我想收集键 name 的所有不同值,在这个例子中,结果将是:

(顺序无关紧要)

['foo', 'zoo', 'taz', 'tof', 'tok', 'bar']

有类似的功能

def func(my_array, "name")

您知道我应该如何编写该函数吗?

最佳答案

假设您知道子结构在 :children 下:

def extract(sequence, key)
sequence.flat_map do |hash|
[hash[key], *extract(hash[:children] || [], key)]
end
end

关于arrays - 如何在数组/哈希中递归地收集指定键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321560/

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