Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何映射jquery自动完成的哈希数组?_Ruby_Json_Jquery Autocomplete - Fatal编程技术网

Ruby 如何映射jquery自动完成的哈希数组?

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

我有一个ruby对象

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} }