2016-02-29 60 views
1

我有一個這樣的陣列:轉換數組數組的數組

array = ['john', 'jennifer', 'kristen', 'ted'] 

我想將它轉化成k個元素的數組的數組,對於k = 2的結果應該是:

[['john', 'jennifer'], ['kristen', 'ted']] 

是否可以在一行中做到這一點?

+1

這在[Enumerable文檔](http://ruby-doc.org/core-2.3.0/Enumerable.html)中有介紹。閱讀語言文檔幾次以熟悉可用內容是非常好的習慣。每次通過你都會學到更多。 –

回答

14

each_slice可能會有所幫助:

array.each_slice(2).to_a 
#=> [["john", "jennifer"], ["kristen", "ted"]] 
+0

@Stefan,謝謝 - 我需要學習鏈接到API文檔。 – eugen

2

如果你想創建一個兩列使用謂詞(計算結果爲真或假的表達式),我會建議partition

array.partition{ |name| name[0] == 'j' } 
#=> [["john", "jennifer"], ["kristen", "ted"]]