我有一个ruby hash 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
且简洁明了的情况下实现此结果?
答案 0 :(得分:8)
您正在寻找名为"map."
的函数式编程概念b = a['data'].collect {|e| e['uid'] }
# or
b = a['data'].map {|e| e['uid'] }
答案 1 :(得分:-2)
如果密钥与uid
相等,则会在哈希中打印每个密钥:
b = a["data"].each_key { |e| print e if e='uid' }