假设我有@array = [1 ,2 ,3]
我想创建每个数组的三个块,其余的如下:
@array.each do |first|
(@array - [first]).each do |second|
(@array - [first] - [second]) do |third|
#do something
因此,除了前一个块使用的元素之外,每个块都遍历整个数组。但这有点臭和重复,因为对于每个块我需要删除前面的元素,重构这些块的最佳方法是什么?
由于
答案 0 :(得分:2)
该术语是排列。 Ruby有一个built-in方法:
@array.permutation(3) do |first, second, third|
# do something
end