2015-08-18 94 views
13

這兩種方法都聽起來像他們應該做同樣的事情,但他們似乎不是彼此的別名。 in_groupsin_groups_of有什麼區別?rails in_groups和in_groups_of有什麼區別?

+0

一個是基本上切片,其他使他們在偶數大小的組。得到它了。 – BookOfGreg

+1

另一種想法是:'in_groups(n)'返回一個帶有'n' * rows *的二維數組,而'in_groups_of(n)'返回一個帶有'n' *列*的二維數組。 – Stefan

回答

22

的文檔是很清楚的。

in_groups(number, fill_with = nil)

拆分或數量的組在陣列上進行迭代,以填充任何fill_with剩餘時隙,除非它是假的。

in_groups_of(number, fill_with = nil)

拆分或迭代的陣列上在組大小的,填充與fill_with任何剩餘的時隙,除非它是假的。

實施例:

# Splits in groups of 2 
["a","b","c","d","e","f"].in_groups_of(2) 
# => [["a", "b"], ["c", "d"], ["e", "f"]] 

# Splits in 2 groups 
["a","b","c","d","e","f"].in_groups(2) 
# => [["a", "b", "c"], ["d", "e", "f"]]