检查元素是否属于Ruby中的数组

时间:2016-01-18 08:39:40

标签: arrays ruby

我试图弄清楚如何使用ruby来检查一个元素是否属于一个数组。我正在从一个文件(比如demo.txt)中读取,每个行中都有逗号分隔的对。我将这两对连接起来并将其推入一个数组中。稍后我需要检查特定值是否属于该数组。我可以看到数组已成功填充,但第二次检查不成功,即它无法在数组中找到该元素。 '我的demo.txt'如下

a, b
c, d

ruby​​代码如下

array = Array.new
File.readlines('demo.txt').each do |line|   
    line.slice! ", "
    array.push line
end
array.each do|d|
    puts d
end

if array.include? 'ab'
    puts "correct" #this is not printed
end 

如何检查数组是否包含元素' ab'?

2 个答案:

答案 0 :(得分:1)

您的数组中有ab\n

而不是

array.each do|d|
    puts d
end

使用inspect来检查值,

p array
#=> ["ab\n", "cd"]

要解决此问题,请在chomp

上使用line
File.readlines('b.txt').each do |line|   
    line = line.chomp
    ...
end

答案 1 :(得分:-1)

替换此

if array.include? 'ab'
    puts "correct"
end 

这一个

if array.find 'ab'
    puts "correct"
end 

解决了这个问题。