比较哈希值



在我的Ruby on Rails应用程序我有以下参数:

{"0"=>{"from_days"=>"1", "to_days"=>"2", "netto_price"=>"1.0", "_destroy"=>"false", "id"=>"57"}, "1"=>{"from_days"=>"3", "to_days"=>"7", "netto_price"=>"23", "_destroy"=>"false"}, "2"=>{"from_days"=>"9", "to_days"=>"10", "netto_price"=>"123", "_destroy"=>"false"}} 

现在我想检查一下:

  • 1[:from_days]> 0[:to_days]
  • 2[:from_days]> 1[:to_days]
  • 等。

问题是我想动态地做,因为将来这个参数会变大。有人知道如何解决这个问题吗?

你可以试试:

params = {"0"=>{"from_days"=>"1", "to_days"=>"2", "netto_price"=>"1.0", "_destroy"=>"false", "id"=>"57"}, "1"=>{"from_days"=>"3", "to_days"=>"7", "netto_price"=>"23", "_destroy"=>"false"}, "2"=>{"from_days"=>"9", "to_days"=>"10", "netto_price"=>"123", "_destroy"=>"false"}}
(params.keys.min..params.keys.max).each do |index|
  if params[(index+1).to_s][:from_days].to_i > params[index.to_s][:to_days].to_i
    # your logic when 1[:from_days] > 0[:to_days] is true
  else
  end
end

这段代码意味着您的params哈希值:

  • 必须包含连续的键(每个键之间没有间隙)
  • 必须包含一个包含[:from_days][:to_days]键的散列

最新更新