`< =':Fixnum与Array的比较失败(ArgumentError)

时间:2016-09-22 18:00:35

标签: ruby

在这段代码中,我试图删除单词中的最后一个元音。一旦我运行代码,我收到一个参数错误,说明" Fixnum与Array的比较失败(ArgumentError)。请帮忙!

VOWELS = %w( a e i o u)

def hipsterfy(string)

  new_string = string.split('')

  reversed_string = new_string.reverse

  i = 0

  while i <= reversed_string

     if VOWELS.include?[i]

        reversed_string[i] = ('')

    i += 1
    end
    reversed_string
  end

  reversed_string.reverse 

end 

3 个答案:

答案 0 :(得分:1)

我确信这不是这个代码的唯一闪现,但你得到的错误来自:

while i <= reversed_string

它可能应该是

while i < reversed_string.length

因为reversed_array是一个数组,您可能希望将ilength进行比较。

答案 1 :(得分:1)

测试时

systemd

您要检查if VOWELS.include?[i] 常量是否包含数组索引。你想要查看字符串中该点的字母,对吗?

VOWELS

答案 2 :(得分:0)

在if语句之后需要有一个“break”语句,以便在循环第一个元音后立即停止循环。这会阻止它进入下一个元音。问题已解决。