删除"在JavaScript控制台中打印数组时

时间:2015-03-19 19:09:55

标签: javascript ruby-on-rails arrays

我有一个传递给javascript文件的数组。

在控制器中,我打印出阵列,看起来像是......

["123456789", "987654321", "147852369", "369852147"]

此数组设置为控制器中的实例变量@array。

我通过在视图中将@array设置为变量,将此数组发送到JavaScript文件。

var array = "<%= @array %>";

注意:我也尝试了var array = "<%=raw @array.to_json %>";

然后在JavaScript文件中,我只是在控制台中打印数组,就像这样......

console.log(array);

然而,当它在控制台中打印时,输出看起来像这样。

[&quot;123456789&quot;, &quot;987654321&quot;, &quot;147852369&quot;, &quot;369852147&quot;]

当我通过jQuery检查typeof时,它会以字符串而不是数组的形式返回。

我不想看到&quot;。最终,我想在运行一些JavaScript函数时将这些值用作选择器。

通过这些步骤,我做错了什么产生&quot;

编辑:这就是我最初创建数组的方式。

  CONTROLLER
  @original= large_array_of_hashes
  # I am grabbing only specific data from the hash. Only what comes after @errors=>
  @data = @original.scan(/@errors=>"(.*?)"/).flatten.map{ |msg| msg.gsub(/(\.|\s+)/, '').strip }
  @array = []
  @data.each{|data| @array << data}

3 个答案:

答案 0 :(得分:1)

通过将raw添加到我的ruby变量

来纠正我的问题
<%= raw @array %>

我知道它已经很晚了,但希望它可以帮助有人继续前进!

答案 1 :(得分:0)

我认为

@array = %w[123456789 987654321 147852369 369852147]

然后你的javascript就行了。

答案 2 :(得分:0)

试试这个,将它们放在单引号中

IN javascript

var array = '<%= @array.to_json %>';
array.replace(/&quot;/g, '"');