Javascript 在coffeescript中使用数组

Javascript 在coffeescript中使用数组,javascript,ruby-on-rails,json,coffeescript,Javascript,Ruby On Rails,Json,Coffeescript,我正在使用。gem有一个方法,该方法创建了一个用于javascript的数组 hash = Gmaps4rails.build_markers(@users) do |user, marker| marker.lat user.latitude marker.lng user.longitude end 其结果如下: [{:lat=>33.462209, :lng=>-86.812519, :infowindow=>"hello"}] 或者更容易阅读 [ {

我正在使用。gem有一个方法,该方法创建了一个用于javascript的数组

hash = Gmaps4rails.build_markers(@users) do |user, marker|
 marker.lat user.latitude
 marker.lng user.longitude
end
其结果如下:

[{:lat=>33.462209, :lng=>-86.812519, :infowindow=>"hello"}]
或者更容易阅读

[
  {
   :lat => 33.462209,
   :lng => -86.812519,
   :infowindow => "hello"
  }
]
我试图在coffeescript中使用它,但是我将这个数组从控制器中的变量传递到coffeescript中。(我使用的是特定于页面的js,您可以在其中访问coffeescript中的控制器变量。)

我尝试将数组转换为JSON,并使用
gsub
替换字符,但一直遇到困难

具体地说,我尝试转换为JSON,然后删除逗号,
hash.to_JSON.gsub(/,/,'')
,它输出

[{"lat":33.462209"lng":-86.812519"infowindow":"hello"}]
我想我需要删除括号,
{
}
在这里,并可能包括coffeescript的正确行缩进

最后,它应该是这样的:

[
  lat: 33.462209
  lng: -86.812519
  infowindow: "hello"
]
有什么想法吗??谢谢你抽出时间

我曾尝试将数组转换为JSON,并使用gsub替换字符,但一直遇到困难

您应该直接使用您正在生成的JSON。这是完全有效的咖啡脚本。根本没有理由试图从中去掉任何东西

你想要制作的咖啡脚本实际上是完全一样的。这个

[
  lat: 33.462209
  lng: -86.812519
  infowindow: "hello"
]

实际上是
[{lat:…,lng:…,}]
,带有逗号和
{}
隐藏,但仍然在语法上存在。CoffeeScript允许您在定义对象文字时省略
{}
,但它仍然是一个对象文字,如果将它们从JSON中剥离,您将一无所获。无论哪种方式,您生成的结构都是相同的:一个数组,包含一个元素,它是一个对象,包含属性lat/lng/infowindow。

您最终需要的“数组”不是数组。你真的确定这就是你想要的吗?