如果传递逻辑语句,如何将项添加到数组中?

Goa*_*lie 1 ruby ruby-on-rails

我想B_array基于现有的阵列A 创建一个新阵列A_array.如果该项目A_array具有某个字段,则将其添加到其中B_array.

目前这就是我所拥有的,它将所有内容放入B_array:

B_array = A_array.map {|item| if item.name == 'Josh'}
Run Code Online (Sandbox Code Playgroud)

A_array:

[id:0,name:"Josh",email:"josh@josh@gmail.com"],
[id:1,name:"Scott",email:"scott@josh@gmail.com"],
[id:2,name:"Josh",email:"dan@josh@gmail.com"]
Run Code Online (Sandbox Code Playgroud)

期望的输出B_array:

[id:0,name:"Josh",email:"josh@josh@gmail.com"],
[id:2,name:"Josh",email:"dan@josh@gmail.com"]
Run Code Online (Sandbox Code Playgroud)

谢谢!

HRÓ*_*LFR 6

用途.select:

a = [{id:0,name:"Josh",email:"josh@josh@gmail.com"},
     id:1,name:"Scott",email:"scott@josh@gmail.com"}]
b = a.select { |i| i[:name] == 'Josh' }
Run Code Online (Sandbox Code Playgroud)

.select 将根据您提供的条件进行过滤,并返回通过测试的元素数组.