【发布时间】:2014-04-03 20:20:57
【问题描述】:
我正在尝试将球队名称存储在 @wins 或 @loss 中,具体取决于与相应键关联的主客场比分。
@leaderboard_info = [{
home_team:"Patriots",
away_team: "Broncos",
home_score: 7,
away_score: 3
},
#more info in hashes.........]
@wins = []
@loss = []
@leaderboard_info.each do |game|
game.each do |key,value|
if value[:home_score] > value[:away_score] #7 > 3
@win << value[:home_team] #Patriots
@loss << value[:away_team] #Broncos
else
@loss << value[:home_team]
@win << value[:away_team]
end
end
end
但我一直遇到这个错误
[]': no implicit conversion of Symbol into Integer (TypeError)
if 语句应该获取 7 和 3 的特定值。然后它应该推送值存储的团队名称。为什么它不起作用?我用key[home_score] 等尝试过,但还是不行。
【问题讨论】:
-
这是很多个实例变量,特别是考虑到您的评论
#more info in hashes。您是否意识到所有这些信息对于您创建的每个对象都是重复的? -
另外,您已经定义了数组
@wins = [],但是您正在将信息推送到@win。如果不查看程序的其余部分,就不可能知道正确的代码应该是什么,但从您所展示的内容来看,它看起来非常仓促。
标签: ruby arrays data-structures hash