增加哈希值

时间:2013-10-29 10:09:49

标签: ruby-on-rails ruby hash

我的结果应该是这样的:

{ "Jane Doe" => 10, "Jim Doe" => 6 }

我的代码看起来像这样

    @user.update_column(:message_count, @message.recipient_username)

我得到这个输出例如:

"Jane Doe"

我不知道如何为此名称指定一个数字,例如:

{ "Jane Doe" => 1 }

当使用相同的recipient_username返回相同的命令时,该数字应该增加:

@user.update_column(:message_count, @message.recipient_username)
{ "Jane Doe" => 2 }

我想做的最后一件事是,当邮件的recipient_username"Jim Doe"并且此用户名不在哈希中时,应添加例如:

{ "Jane Doe" => 2, "Jim Doe" => 1 }

我读了http://www.ruby-doc.org/core-2.0.0/Hash.html,但我无法转置它。

1 个答案:

答案 0 :(得分:1)

这样的东西?

results = Hash.new { 0 }
DATA.readlines.each do  |line|
  name = line.chomp
  results[name] += 1
end

p results

# >> {"John Doe"=>3, "Jane Doe"=>1, "James Dean"=>1, "Jennifer Smith"=>1, ""=>1}
__END__
John Doe
Jane Doe
John Doe
James Dean
Jennifer Smith
John Doe

这将生成具有默认值的新键,并在您开始时递增。