ruby-on-rails - ruby 用于哈希中的每个键/值对

标签 ruby-on-rails ruby mongodb

我对 MongoDB 有一点问题,因为它总是返回带有双引号和整数作为 float 的键的哈希,这对其他人来说是个问题吗?

对于 map 减少或分组后的示例,假设我有一堆看起来像这样的哈希:

{"unknown"=>54.0, "pedestrians"=>572.0, "vehicles"=>1045.0}

但我真正想要的是:

{ unknown: 54, pedestrians: 572, vehicles: 1045 }

关于如何轻松转换它的任何想法?

最佳答案

你可以这样做:

original = {"unknown"=>54.0, "pedestrians"=>572.0, "vehicles"=>1045.0}
converted = Hash[ original.map { |key, value| [key.to_sym, value.to_i] } ]

或者,如果您使用的是 Rails,您可以将其设为 HashWithIndifferentAccess 并仅转换值:

original = HashWithIndifferentAccess.new(original)
original.each { |key, value| original[key] = value.to_i }

关于ruby-on-rails - ruby 用于哈希中的每个键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407756/

相关文章:

ruby-on-rails - 工作线程中的 sidekiq Perform_in(delay) 会忽略延迟

ruby-on-rails - Rails 覆盖关系的默认 getter (belongs_to)

ruby-on-rails - Rails Minitest 没有运行测试类

ruby-on-rails - "exists?"方法不起作用 - 在保存到数据库之前尝试检查用户是否存在

mongodb - 无法从 mocha 测试连接到 mongodb

html - 在普通图像之前加载 CSS 背景图像?

ruby - Ruby 中的哈希语法

ruby-on-rails - 如何在 URU 中添加新的 Ruby 环境?

java - mongo-hadoop-saveAsNewAPIHadoopFile()-旧文件夹未清理

java - Java Spring 中是否可以进行条件聚合?