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

时间:2012-07-11 23:57:48

标签: ruby-on-rails ruby

我想基于现有数组A B_array创建一个新数组A_array。如果A_array中的该项目具有特定字段,请将其添加到B_array

目前这就是我所拥有的,并将其全部放入B_array

B_array = A_array.map {|item| if item.name == 'Josh'}

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"]

B_array的所需输出:

[id:0,name:"Josh",email:"josh@josh@gmail.com"],
[id:2,name:"Josh",email:"dan@josh@gmail.com"]

谢谢!

1 个答案:

答案 0 :(得分: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' }

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