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")