我想在现有数组的基础上创建一个新数组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/