更优雅/更短的方式从哈希数组中获取值?

win*_*ons 1 ruby

我有:

val = [{uid: '1', ignore: 'i1'}, {:uid: '2', ignore: 'i2'}]
Run Code Online (Sandbox Code Playgroud)

现在我想将部件提取:uid到一个数组中:

arr = []
val.each { |u| u.map { |k,v| arr << v if :uid == k } }
Run Code Online (Sandbox Code Playgroud)

是否有更优雅/更短的方式来写最后两行?

Pri*_*ain 5

试试这个

val = [{uid: '1', ignore: 'i1'}, {uid: '2', ignore: 'i2'}]

arr = val.map { |u| u[:uid] }
Run Code Online (Sandbox Code Playgroud)