我正在使用这个哈希数组将批量插入到 mongo DB 中。每个散列都是通过解析文本文件来填充的,因此字段的格式是不可预测的格式。它可能看起来像:
{date => "March 5", time => "05:22:21", first_name = "John", middle_initial = "JJ", ...}
我会有一系列格式化函数。所以也许:
def format_date
..convert if needed..
end
def format_time
...
end
我将如何调用各种记录的格式化函数?我可以看到进行某种 lambda 调用,在其中迭代哈希并调用 format_record_name 函数,但并非所有记录都具有格式化函数。例如上面的first_name记录就不需要一个。有什么想法吗?
最佳答案
只需保留您想要处理的键的列表即可。您甚至可以使用哈希将其与转换函数联系起来:
transformations = {
:date => lambda {|date| whatever},
:time => lambda {|time| whatever}
}
transformations.default = lambda {|v| v}
data.map do |hash|
Hash[ hash.map {|key, val| transformations[key][val] } ]
end
关于ruby - 格式化数据哈希的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466005/