如何从数组元素中删除一个字符?

7

我有一个像这样的数组:

["ee", "3/4\"", "22\"", "22\""]

我希望能够删除逗号、\"或将其替换为&#34,以使数组看起来像这样:

["ee", "3/4", "22", "22"]

或者是这样的:
["ee", "3/4&#34", "22&#34", "22&#34"]

我的问题是,我想将 Ruby 中的数组传递到 JavaScript 中,但是一直提示出现“未终止的字符串常量错误”,我无法想到解决办法。

以下是我使用的方法将信息传递到 JavaScript:

cut_list="from_ruby_cut(\""+c[1]+"\")"

2
你为什么不使用JSON? - Andrew Marshall
1
是的...我不知道JSON是什么... :) 我在编程方面还很新,所以我的知识非常有限,不幸的是。我会研究一下JSON,看看它是否能有所帮助。 - JoMojo
&# 实体不应该以分号结尾吗?(例如," - Platinum Azure
2个回答

11

要替换数组中的每个元素为修改后的版本,例如替换不需要的字符,您可以使用 map! 函数。在块内部,使用 gsub 替换不需要的 " 字符。

array = ["ee", "3/4\"", "22\"", "22\""]

array.map!{ |element| element.gsub(/"/, '') }
array
#=> ["ee", "3/4", "22", "22"]

array.map!{ |element| element.gsub(/"/, '&#34') }
array
#=> ["ee", "3/4&#34", "22&#34", "22&#34"]

不过,在构建 JavaScript 字符串时,您也可以尝试使用 c[1].inspect 而不是 c[1] 来解决问题。如果使用 inspect,则会在字符串中包括引号和转义引号的反斜杠。


使用.inspect很好用,纯天才!可惜对我来说解决方案相当简单...我会尝试其他建议的部分,因为它可能在另一个时间派上用场。谢谢Emily! - JoMojo

0
要按照您想要的方式修改数组,请使用map和gsub。
a = ["ee", "3/4\"", "22\"", "22\""]
a.map{|e| e.gsub(/"/,'')}
=> ["ee", "3/4", "22", "22"] 

或者

a.map{|e| e.gsub(/"/,'&#34')}
=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

然而,我不确定这是否是实现您最终目标的最佳方法。


我也不确定这是最好的方式,但嘿,学习新东西很有趣。:) 谢谢你的回复 NullRef。 - JoMojo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接