Javascript新数组和join()方法

Javascript新数组和join()方法,javascript,Javascript,受此启发,我想找出一些与创建阵列相关的问题。假设我正在使用以下内容创建新阵列: Array(3) 在控制台中,我得到: [未定义,未定义,未定义] 这很明显。假设我正在加入该阵列: Array(3.join() 我得到的答复是: “,” 这也很容易理解,因为这是三个空字符串,我想它们之间用逗号隔开。但是,当我尝试这样做时: Array(3).加入(“lorem”) 我得到的字符串只重复了两次“lorem”: “loremlorem” 为什么这个词有两个而不是三个重复?join使用作为连接符传递的

受此启发,我想找出一些与创建阵列相关的问题。假设我正在使用以下内容创建新阵列:

Array(3)

在控制台中,我得到:

[未定义,未定义,未定义]

这很明显。假设我正在加入该阵列:

Array(3.join()

我得到的答复是:

“,”

这也很容易理解,因为这是三个空字符串,我想它们之间用逗号隔开。但是,当我尝试这样做时:

Array(3).加入(“lorem”)

我得到的字符串只重复了两次“lorem”:

“loremlorem”


为什么这个词有两个而不是三个重复?

join
使用作为连接符传递的内容将元素连接在一起。因此,在
lorem
s周围有三个空字符串:

|lorem|lorem|
如果不使用空数组,可能会更加明显:

var arr = [1, 2, 3, 4, 5]; // Like Array(5), except not sparse

arr.join('-and-'); // 1-and-2-and-3-and-4-and-5

顺便说一下,您的第一个示例
join
输出是不正确的。它应该是
“,”,
。(取决于输出格式。)

Join将数组中的元素与指定的分隔符组合在一起

因此,由于有3个元素,您只需要2个分隔符(介于1和2之间,以及介于2和3之间)


如果有一个包含3个成员的数组,则
.join
是成员之间的填充符,因此应该只有两个连接字符串

因此,您的第二个输出是正确的

您使用
.join()
的第一次输出看起来像是显示错误或测试代码的错误陈述

.join()
的默认值是一个
,“
,因此:

new Array(3).join();
我应该给你这个:

",,"
您显示的输出:

[, ,]
控制台中键入
新数组(3)
而不使用
.join()

join带有分隔符,这很可能会导致错误。“lorem”取代了以前的逗号。

请查看文档

传递给join函数的内容将用作数组元素之间的分隔符。使用
数组(3)
声明数组时,您正在创建一个包含三个元素的数组。join方法在这些元素之间插入分隔符,因此您将只看到两个“lorem”

实际上,您看到的是:
blank lorem blank lorem blank
。其中blank是数组的空元素

尝试执行以下操作:

var fruits = ["banana", "orange", "apple"]
fruits.join("lorem")
它会打印出来


bananaloremorangelemapple

当您使用
join()
时,只有2个逗号,为什么您希望有3个
lorem
s?为什么这会被否决?谢谢您的回答。我似乎错误地解释了
join()
方法应该做什么。现在我明白了。当然,你们对输出的看法是对的,我的错,我编辑了这个问题。我也明白了要点。我误解了
join()
方法的概念,因此我提出了我的问题。你是对的,这是我的错,我刚刚复制了wrond输出。@user1292810:没问题。:)要点是当您不传递任何参数时,
.join()
的默认值为“
”,“
”。
var fruits = ["banana", "orange", "apple"]
fruits.join("lorem")