在coffeescript中使用数组

贾斯汀

我正在使用google-maps-for-rails(gmap4rails)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中。(我将Paloma JS用于特定于页面的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。这是完全有效的CoffeeScript。完全没有理由尝试从中删除任何内容。

无论如何,您尝试制作的CoffeeScript实际上是相同的。这...

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

确实是[{ lat: ..., lng: ..., }],带有逗号和{} 隐藏的,但在语法上仍然存在。CoffeeScript允许您{}在定义对象文字时省略,但是它仍然是对象文字,并且通过将其从JSON中剥离而不会获得任何收益。无论哪种方式,您生成的结构都是相同的:一个数组,包含一个元素,这是一个对象,包含属性lat / lng / infowindow。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章