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

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&#34", "22&#34", "22&#34"]

原因是我试图将该数组从 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(/"/, '&#34') 
array
#=> ["ee", "3/4&#34", "22&#34", "22&#34"]

但是,您也可以在构建 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(/"/,'&#34')
=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

但是,我不确定这是实现最终目标的最佳方式。

【讨论】:

我也不确定这是否是最好的方法,但嘿,学习新东西很有趣。 :) 感谢您的回复 NullRef。

以上是关于如何从数组元素中删除字符?的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何从数组中删除一个指定元素?

如何删除多维字符串数组中的空元素?

如何使用python从数组中删除特定元素

如何从数组中删除随机元素。 Python

从分解的字符串中删除空数组元素[重复]

java如何删除掉数组中的某个元素??