Javascript 新的 Array 和 join() 方法

Javascript new Array and join() method

本文关键字:方法 join 新的 Array Javascript      更新时间:2023-09-26

受到这个流行演讲的启发,我想找出一些与创建数组相关的问题。假设我正在使用以下命令创建新数组:

Array(3)

在控制台中,我得到:

[undefined, undefined, undefined]

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

Array(3).join()

作为回应,我得到:

",,"

这也是可以理解的,因为我想这是三个空字符串,用逗号分隔。但是当我尝试做时:

Array(3).join("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 需要一个分隔符。"lorem"取代了以前的逗号。

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

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

var a = [1,2,3];
a.join(','); //1,2,3
a.join('test'); // 1test2test3

查看联接文档。

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

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

尝试执行以下操作:

var fruits = ["banana", "orange", "apple"]
fruits.join("lorem")

它将打印

bananaloremorangeloremapple

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

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

您使用 .join() 的第一个输出似乎是显示错误或测试代码的虚假陈述。

.join()的默认值是 "," ,因此:

new Array(3).join();

应该给你这个:

",,"

您显示的输出:

[, ,]

更有可能来自只是在没有.join()console中键入new Array(3).