【发布时间】:2014-05-26 14:19:51
【问题描述】:
尝试创建一组名称的每个排列,并将它们成对放置到多维数组中,然后删除所有重复项。我遇到的问题是遍历数组,比较两个值,如果它们相同则删除该数组。
names = ["Bob", "Dave", "Clive"]
names2 = names.repeated_combination(2).to_a
[["Bob", "Bob"], ["Bob", "Dave"], ["Bob", "Clive"], ["Dave", "Dave"], ["Dave", "Clive"], ["Clive", "Clive"]]
这应该返回一组唯一的多维数组
names2.each { |x| x.delete_if { |y| y.slice(0) == y.slice(1) }}
但它返回与以前相同的数组,其中包含重复项。 我尝试在几个地方添加“uniq”,但没有任何区别。
【问题讨论】:
-
只是提到预期的输出......你想删除
["Bob", "Bob"]作为重复吗? -
为什么不试试
names.combination(2).to_a?
标签: ruby arrays multidimensional-array iteration uniq