如何从数组元素中删除字符?
Posted
技术标签:
【中文标题】如何从数组元素中删除字符?【英文标题】:How do I remove a character from array element? 【发布时间】:2012-03-27 07:38:21 【问题描述】:我有一个这样的数组:
["ee", "3/4\"", "22\"", "22\""]
我想删除逗号 \"
或将其替换为 &#34
以便数组如下所示:
["ee", "3/4", "22", "22"]
或者这个:
["ee", "3/4"", "22"", "22""]
原因是我试图将该数组从 Ruby 传递到 javascript,但我不断收到“未终止的字符串常量错误”,我就是想不出解决办法!
这是我用来将信息传递给 JavaScript 的:
cut_list="from_ruby_cut(\""+c[1]+"\")"
【问题讨论】:
您没有使用 JSON 有什么特别的原因吗? 是的.. 我不知道 JSON 是什么... :) 我对所有这些编程东西都很陌生,所以我的知识非常有限,不幸的是。我会研究 JSON 看看是否有帮助。&#
实体不应该以分号结尾吗? (例如,"
)
【参考方案1】:
要将数组中的每个元素替换为修改后的版本,例如替换不需要的字符,您可以使用map!
函数。在块内,使用gsub
替换不需要的"
字符。
array = ["ee", "3/4\"", "22\"", "22\""]
array.map! |element| element.gsub(/"/, '')
array
#=> ["ee", "3/4", "22", "22"]
array.map! |element| element.gsub(/"/, '"')
array
#=> ["ee", "3/4"", "22"", "22""]
但是,您也可以在构建 JavaScript 字符串时使用 c[1].inspect
而不是 c[1]
来解决您的问题。如果你使用inspect,它会打印包含引号的字符串,并用反斜杠转义字符串中的引号。
【讨论】:
使用 .inspect 有效,纯属天才!!可悲的是,对我来说非常简单的解决方案......我会尝试你的其余建议,因为它可能会在其他时候派上用场。谢谢艾米丽!【参考方案2】:使用map
和 gsub 以您想要的方式修改数组。
a = ["ee", "3/4\"", "22\"", "22\""]
a.map|e| e.gsub(/"/,'')
=> ["ee", "3/4", "22", "22"]
或
a.map|e| e.gsub(/"/,'"')
=> ["ee", "3/4"", "22"", "22""]
但是,我不确定这是实现最终目标的最佳方式。
【讨论】:
我也不确定这是否是最好的方法,但嘿,学习新东西很有趣。 :) 感谢您的回复 NullRef。以上是关于如何从数组元素中删除字符?的主要内容,如果未能解决你的问题,请参考以下文章