小编jen*_*des的帖子

ruby 重构类方法

我是红宝石新手。我正在尝试创建一个report_checker函数,该函数检查单词“green,red,amber”出现的频率并以以下格式返回:“Green:2/nAmber:1/nRed:1”。

如果该词不是免费提到的词之一,则将其替换为“未计算”一词,但仍会计算它出现的次数。

我的代码返回重复,例如,如果我给它输入report_checker(“Green,Amber,Green”)。它返回“绿色:2/n琥珀色:1/n绿色:2”,而不是“绿色:2/n琥珀色:1”。

此外,它不计算未解释的单词出现的次数。关于我哪里出错的任何指导?

def report_checker(string)
  array = []
  grading = ["Green", "Amber", "Red"]

    input = string.tr(',', ' ').split(" ")
  
    input.each do |x|
       if grading.include?(x)
        array.push( "#{x}: #{input.count(x)}")
       else
         x = "Unaccounted"
        array.push( "#{x}: #{input.count(x)}")
       end
    end   
    
    array.join("/n")
end

 report_checker("Green, Amber, Green")
Run Code Online (Sandbox Code Playgroud)

我尝试将单词推入单独的单词并返回预期的单词及其计数

ruby

3
推荐指数
1
解决办法
83
查看次数

标签 统计

ruby ×1