Finding суммы массива хэш-значений в рубин бросает ошибкуНахождение суммы массива хэш-значений в рубиновый
parsed_response = [
{"type"=>"trading", "currency"=>"btc", "amount"=>"1.19782496", "available"=>"1.19782496"},
{"type"=>"trading", "currency"=>"usd", "amount"=>"0.0", "available"=>"0.0"},
{"type"=>"deposit", "currency"=>"btc", "amount"=>"0.0", "available"=>"0.0"},
{"type"=>"deposit", "currency"=>"usd", "amount"=>"0.0", "available"=>"0.0"},
{"type"=>"exchange", "currency"=>"btc", "amount"=>"0.0", "available"=>"0.0"},
{"type"=>"exchange", "currency"=>"usd", "amount"=>"0.0", "available"=>"0.0"}
]
parsed_response.map { |h| h["available"].to_f }.sum
Это выдает следующее сообщение об ошибке:
undefined method `sum' for [1.19782496, 0.0, 0.0, 0.0, 0.0, 0.0]:Array (NoMethodError)
Как мне изменить мой код?
Я не могу найти, где вы звоните 'sum'? –
работает для меня: 'parsed_response.map {| h | h ["available"]. to_f} .sum => 1.19782496' – Surya
Вы конвертировали их в float с to_f в свой код, но в ошибке это похоже, что у вас нет - они все еще являются строками (которые могут не суммируется). Эта ошибка определенно вызвана линией кода, которую вы задали в своем вопросе? –