【发布时间】:2015-04-07 16:06:08
【问题描述】:
输入:-
array = [{"name"=>"id", "value"=>"123"},
{"name"=>"type", "value"=>"app"},
{"name"=>"codes", "value"=>"12"},
{"name"=>"codes", "value"=>"345"},
{"name"=>"type", "value"=>"app1"}]
sample_hash = {}
功能:-
array.map {|f| sample_hash[f["name"]] = sample_hash[f["value"]] }
结果:-
sample_hash
=> {"id"=>"123", "type"=>"app", "codes"=>"345"}
但我需要的预期结果应该如下所示:-
sample_hash
=> {"id"=>"123", "type"=>["app","app1"], "codes"=>["12", "345"]}
我怎样才能得到我的预期输出?
【问题讨论】:
-
虽然它不是你所要求的,但如果你有一个数组,即使对于只有一个值的键,它也会让你更容易和更好地使用散列。
"id" => ["123"]- 这样从哈希中获取值时,您不必检查是否返回了字符串或数组。 -
@mikej 同意你的看法。 API 一致性很重要且很有帮助。