在通过从文本文件导入数字创建的数组上调用uniq
时,该方法不会删除数组中最后一个重复的元素。
这将创建一个示例值数组(1,2,3,4,3,3,4,4)。每个值都是文本文件的在线:
file_data = Array.new
file_name = File.readlines("filename.txt")
这显示了预期的结果:
puts file_name # => 1, 2, 3, 4, 3, 3, 4, 4
puts "#{file_data.length}" # => 8
然后,这显示出意想不到的结果:
puts file_name.uniq #=> 1, 2, 3, 4, 4
puts "#{file_data.length}" #=> 5
我将值直接输入到数组中,而不是通过文本文件导入它们,并且没有出现此问题,因此它似乎是文件读取命令中的内容。我迷失了如何解决这个问题。任何帮助表示赞赏。
答案 0 :(得分:2)
这很可能是一个空白问题。
尝试:
file_name.map(&:strip).uniq