2015-08-18 62 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"]]