我想在现有数组的基础上创建一个新数组B_array。如果A_array中的项具有某个字段,则将其添加到A_array中。
目前,这就是我所拥有的,它把所有的东西都放进了B_array

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

阵列:
[id:0,name:"Josh",email:"josh@[email protected]"],
[id:1,name:"Scott",email:"scott@[email protected]"],
[id:2,name:"Josh",email:"dan@[email protected]"]

B_array的期望输出:
[id:0,name:"Josh",email:"josh@[email protected]"],
[id:2,name:"Josh",email:"dan@[email protected]"]

谢谢!

最佳答案

使用.select

a = [{id:0,name:"Josh",email:"josh@[email protected]"},
     id:1,name:"Scott",email:"scott@[email protected]"}]
b = a.select { |i| i[:name] == 'Josh' }

.select将根据给定的条件进行筛选,并返回通过测试的元素数组。

关于ruby-on-rails - 如果传递逻辑语句,如何将项目添加到数组中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11443291/

10-13 02:14