Javascript 在coffeescript中使用数组
我正在使用。gem有一个方法,该方法创建了一个用于javascript的数组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"}] 或者更容易阅读 [ {
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。您最终需要的“数组”不是数组。你真的确定这就是你想要的吗?