2012-09-02 22 views
2

比方說,我有一個數組中的元素列表,但是有一種合理的方法可以將它們分成兩組。我想根據這個標準將這些元素放到兩個較小的數組中。下面是一些代碼,工作和幫助說明我的意思:Ruby中是否有一種方法基於邏輯條件將數組分成兩個較小的數組?

foo = ['a', 'bb', 'c', 'ddd', 'ee', 'f'] 
=> ["a", "bb", "c", "ddd", "ee", "f"] 
a = foo.select{|element| element.length == 1} 
=> ["a", "c", "f"] 
b = foo.reject{|element| element.length == 1} 
=> ["bb", "ddd", "ee"] 

我似乎記得看到一些途徑,使單一的方法調用將分配A和B,但我不記得這是什麼。它看起來像

matching, non_matching = foo.mystery_method{|element| element.length == 1} 

我瘋了,還是這樣的方法存在於Ruby和/或Rails?

回答

相關問題