删除zip数组中的项目

时间:2015-06-07 02:26:21

标签: arrays ruby

在下面的代码中:

array_1 = ["E", "F", "B", "A"]
array_2 = ["E", "F", "B", "E"]

zip_array = array_1.zip(array_2)
zip_array.each { |array| zip_array.delete(array) if array.uniq.length == 1 }
zip_array # => [["F", "F"], ["E", "A"]]

为什么["F", "F"]也不会被删除?它的uniq.length应该是1,不应该吗?

1 个答案:

答案 0 :(得分:1)

通过迭代中途删除第一个元素将意味着它会跳过下一个元素。试试delete_if

array_1 = ["E", "F", "B", "A"]
array_2 = ["E", "F", "B", "E"]

zip_array = array_1.zip(array_2)
zip_array.delete_if { |array| array.uniq.length == 1 }

print zip_array