[英]ruby hash iteration without `each`
我有一个红宝石哈希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
简洁的循环就可以达到这个结果?
b = a['data'].collect {|e| e['uid'] }
# or
b = a['data'].map {|e| e['uid'] }
如果key与uid
相等,它将在哈希中打印每个键:
b = a["data"].each_key { |e| print e if e='uid' }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.