2012-07-11 40 views
1

我想創建一個基於現有陣列A A_array的新陣列B_array。如果A_array中的項目具有某個字段,則將其添加到B_array如果通過邏輯語句,如何將一個項目添加到數組中?

目前,這是我和它把一切變成B_array

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

A_array:

[id:0,name:"Josh",email:"[email protected]@gmail.com"], 
[id:1,name:"Scott",email:"[email protected]@gmail.com"], 
[id:2,name:"Josh",email:"[email protected]@gmail.com"] 

所需的輸出爲B_array

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

謝謝!

回答

6

使用.select

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

.select將篩選基於你給它,並返回通過測試元件的陣列的條件。

相關問題