使用`uniq`方法处理数组的问题

时间:2015-01-18 21:23:54

标签: ruby arrays

在通过从文本文件导入数字创建的数组上调用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

我将值直接输入到数组中,而不是通过文本文件导入它们,并且没有出现此问题,因此它似乎是文件读取命令中的内容。我迷失了如何解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

这很可能是一个空白问题。

尝试:

file_name.map(&:strip).uniq