为什么Array(“1”,“2”,“3”)。join()将字符串转换为JavaScript中的数字?

时间:2014-12-30 20:28:15

标签: javascript arrays

我有一个像

这样的JavaScript数组
Array("1","2","3") 

我希望将其转换为一个字符串,以保留每个数字周围的引号,如此

'"1","2","3"'

但Array.join()和Array.toString()函数会删除引号。

"1,2,3"

如何将我的数组转换为保留引号的字符串?

4 个答案:

答案 0 :(得分:3)

定义字符串的引用是javascript语言的一部分,而不是字符串本身的一部分。

如果您希望将它们连接在一起,则应在字符串中包含引号

Array("\"1\"","\"2\"","\"3\"")

答案 1 :(得分:2)

每个数字周围的引号用于让Javascript知道引号包围的对象实际上是字符串,因此它们不是字符串的部分

Array('"1"', '"2"', '"3"'); 

应该有用。

答案 2 :(得分:2)

它没有。字符串周围的引号是一种符号,告诉系统你要创建一个字符串;它们不是字符串本身的一部分。所以当你加入[“1”,“2”,“3”]时,你得到“123”,因为这是三个字符串的内容。它看起来好像是数字一样,但这只是巧合。

有两种方法可以为字符串添加引号。通常,您需要以某种方式转义它们。在JavaScript中执行此操作的最简单方法是在要转义的字符前放置反斜杠(\),如下所示:

Array("\"1\"","\"2"\","\"3\")

如果你真的想要一个反斜杠字符,那么当你转义它时它看起来像两个反斜杠(\\)。事实上,我必须这样做才能在回复中输入反斜杠。

JavaScript中还有另一种选择:单引号字符串。在JavaScript中,单引号字符串和双引号字符串之间的唯一区别是每种类型都可以包含另一种类型引用而不必逃避它,所以你可以做这样的事情:

Array('"1"','"2"','"3"')

或者,如果你想在数字周围用单引号而不是双引号,你可以这样做:

Array("'1'","'2'","'3'")

但请注意单引号字符串。 JavaScript对单引号和双引号字符串几乎相同,但并非所有语言都。例如,在C和C ++中,单引号“字符串”只能是一个字符长,而双引号字符串可以是任意长度。 Perl,PHP和Ruby允许两种类型都是任意长度,但不对单引号字符串执行变量替换。如果您使用的唯一语言是JavaScript,那么这不是什么大问题,但如果您一次使用多种语言,它可能会导致您需要注意的一些陷阱。

答案 3 :(得分:1)

嗨,你可以这样做

var a = '\"'+Array("1","2","3").join('","')+'\"'