如何找到数组中最后一项的索引?

时间:2011-01-31 22:42:52

标签: ruby-on-rails ruby arrays params

我的数组:

(rdb:381) pp params[:payments]
{"0"=>{":amount_paid"=>"100.00", ":date_paid"=>"2/27/2008"},
 "1"=>{":amount_paid"=>"80.00", ":date_paid"=>"3/27/2008"},
 "2"=>{":amount_paid"=>"100.00", ":date_paid"=>"5/8/2008"}}

我不相信这是对象。执行params[:payments].last会返回此信息:

NoMethodError Exception: undefined method `last' for #<ActiveSupport::HashWithIndifferentAccess:0x1065e8448>

我正在尝试找到最后一项的索引。在这种情况下,答案是 2 ,或“2”

2 个答案:

答案 0 :(得分:4)

嘿,你的数组实际上是一个哈希。您可以通过执行params[:payments].keys.map(&:to_i).max.to_s

之类的操作来获取最后一个键的索引

将实际数组传回会更好。你是如何生成:payments选项的?

答案 1 :(得分:0)

你的值是一个Hash,而不是一个数组,所以它没有排序或索引,除非你在Ruby 1.9上