'students', "data" => [ { "age"-6ren">
gpt4 book ai didi

没有 `each` 的 ruby 哈希迭代

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

我有一个 ruby​​ 哈希 a 如下:

a = {
"module" => 'students',
"data" => [
{
"age" => 12,
"uid" => 'sd3wrew'
},
{
"age" => 10,
"uid" => '43e43r'
},
{
"age" => 10,
"uid" => 'ft34f'
}
]
}

我想从上面的散列中收集所有的 uid 并得到一个像这样的数组:

b = ['sd3wrew', '43e43r', 'ft34f']

所以,我有执​​行此操作的代码,它循环遍历它。

b = []
a['data'].each do |e|
b << e['uid']
end

有没有不用循环 each 并且更简洁的方法来实现这个结果?

最佳答案

您正在寻找名为 "map." 的函数式编程概念

b = a['data'].collect {|e| e['uid'] }
# or
b = a['data'].map {|e| e['uid'] }

http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-map

关于没有 `each` 的 ruby 哈希迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243842/

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