在下面的代码中:
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
,不应该吗?
答案 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