Ruby 如何映射jquery自动完成的哈希数组?
我有一个ruby对象Ruby 如何映射jquery自动完成的哈希数组?,ruby,json,jquery-autocomplete,Ruby,Json,Jquery Autocomplete,我有一个ruby对象 options = [ {"ActionScript"=>"orange"}, {"AppleScript"=>"orange"}, {"Asp"=>"red"}, {"BASIC"=>"green"}, {"C"=>"blue"}, {"C++"=>"purple"}, {"Clojure"=>"green"}, {"COBOL"=>"red"}, {"ColdFusion"=>"r
options = [
{"ActionScript"=>"orange"},
{"AppleScript"=>"orange"},
{"Asp"=>"red"},
{"BASIC"=>"green"},
{"C"=>"blue"},
{"C++"=>"purple"},
{"Clojure"=>"green"},
{"COBOL"=>"red"},
{"ColdFusion"=>"red"},
{"Erlang"=>"green"},
{"Fortran"=>"orange"},
{"Groovy"=>"green"},
{"Haskell"=>"green"},
{"Java"=>"green"},
{"JavaScript"=>"brown"},
{"Lisp"=>"purple"},
{"Perl"=>"blue"},
{"PHP"=>"red"},
{"Python"=>"green"},
{"Ruby"=>"green"},
{"Scala"=>"green"},
{"Scheme"=>"orange"}
]
我想把它映射到这个:
[{"name":"ActionScript","value":"orange"},{"name":"AppleScript","value":"orange"}...]
提前感谢。您可以简单地使用to_json方法
require 'json'
options.map {|elem| elem.map {|k,v| {:name => k, :value => v}}}.flatten.to_json
require 'json'
options = options.map {|elem| elem.map {|k,v| {:name => k, :value => v}}}.flatten
js_options = options.to_json
需要“json”
options=options.map{| elem | elem.map{| k,v{:name=>k,:value=>v}}}
js_options=options.to_json
您可以简单地使用to_json方法 require 'json' options = options.map {|elem| elem.map {|k,v| {:name => k, :value => v}}}.flatten js_options = options.to_json 需要“json” options=options.map{| elem | elem.map{| k,v{:name=>k,:value=>v}}} js_options=options.to_json 此外: 此外:
为什么在erb标签中有这个?当然,你不会建议将逻辑放在视图中吗?是的,我不建议,我正在尝试测试,如果生成了正确的js,将erb标记保留在打开状态….:|编辑为什么在erb标签中有这个?当然,你不会建议将逻辑放在视图中吗?是的,我不建议,我正在尝试测试,如果生成了正确的js,将erb标记保留在打开状态….:|编辑我不太明白为什么
elem
上的map
。我就是喜欢地图!尤其是国家地理杂志。还有星图。地图地图,你永远不可能有很多地图!呃,我第一次是对的。内部映射只允许您获取哈希键/值paris,这取决于每个哈希一个键。FWIW您使用reduce
的版本看起来更干净。我看到了编辑,我不是想误导您:-)是的,它按原样工作,但概念上有点混乱,因为映射仅用于提取具有单个元素的散列的(键、值)。谢谢你的+1,你通常不会从大多数投票答案的用户那里看到;-)我不太明白为什么elem
上的map
。我就是喜欢地图!尤其是国家地理杂志。还有星图。地图地图,你永远不可能有很多地图!呃,我第一次是对的。内部映射只允许您获取哈希键/值paris,这取决于每个哈希一个键。FWIW您使用reduce
的版本看起来更干净。我看到了编辑,我不是想误导您:-)是的,它按原样工作,但概念上有点混乱,因为映射仅用于提取具有单个元素的散列的(键、值)。谢谢你的+1,你通常不会从大多数投票答案的用户那里看到;-)该问题被标记为json和jquery autocomplete,但似乎与它们都没有直接关系。映射为json是因为:而不是=>而与jquery autocomplete相关,因为“名称”和“值”该问题被标记为json和jquery autocomplete,但它似乎与它们都没有直接关系。该映射是json,因为:而不是=>,它与jquery自动完成相关,因为“name”和“value”
options.reduce(:merge).map { |k, v| {"name" => k, "value" => v} }