у меня есть хэш, который выглядит следующим образомmax_by возвращение неверного значения
@hash = { 1=>[], 2=>[], 3=>[], 4=>[],5=>[], 6=>[], 7=>[
[{"value"=>1.58, "title"=>"sun", "quantity" => 2}],
[{"value"=>1.99, "title"=>"sophia", "quantity" => 5}],
[{"value"=>6.30, "title"=>"roam", "quantity" => 15}],
[{"value"=>3.981, "title"=>"jia", "quantity" => "4"}]], 8 => [], 9 => [], 10 => [] }
, и я пытаюсь найти максимальное значение, основанное на стоимость тега для каждого конкретного значения индекса, такого как
из пут должны выглядеть следующим образом
@hash = { 1=>nil, 2=>nil, 3=> nil, 4=>nil,5=>nil, 6=>nil, 7=>[
[{"value"=>6.30, "title"=>"roam", "quantity" => 15}], 8 => nil, 9 => nil, 10 => nil }
Я надеюсь, что ожидаемый выход ясно
Так что я пытаюсь получить максимум от следующего кода
for t in 0..10
if [email protected][t].nil?
@hash[t] = @hash[t].max_by{|i| i[0]['value'].to_i}
puts "----------"
puts @hash.to_s
end
end
, но я получаю только первое значение формы хэширования и нуль для других индексов вместо придания максимального значения для данного индекса. В путах в этом цикле дает мне это что неправильно
[{"title":"sun","value":1.58, "quantity => 2"}], null, null, null, null..
не знает, что это неправильно
вы хотите следить за ид массива? или просто хеш-значение? –
только хеш-значение ... –