我的哈希数组:
data = [{:bool => true, :val => 5}, {:bool => false, :val => 9}, {:bool => true, :val => 1}]
Run Code Online (Sandbox Code Playgroud)
我想迭代数据并只检索一个值数组.我可以:
data.map{|x| x[:val] if x[:bool]}
Run Code Online (Sandbox Code Playgroud)
返回:
[5, nil, 1]
Run Code Online (Sandbox Code Playgroud)
但是这个方法需要额外的.compact调用来摆脱nil值.
有没有更好的方法来实现这一目标?
改用链接到第一select只那些:bool为true,然后map将结果:val:
data.select { |h| h[:bool] }.map { |h| h[:val] } #=> [5, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2616 次 |
| 最近记录: |