为什么join()方法返回的结果与预期不同

时间:2011-06-09 13:27:36

标签: javascript

w3schools join()方法中所述,将数组的所有元素连接成一个字符串,并返回该字符串。 因此,如果您尝试以下方法:

console.log(new Array(6).join('a'));

我希望得到:"aaaaaa" 但相反,我得到:"aaaaa",这意味着少一个。

有人能解释我为什么会这样吗?

2 个答案:

答案 0 :(得分:13)

它将a放在数组的每个元素之间,而不是在每个元素之后,因此6个元素有5个连接符。

在这个小提琴上你可以更准确地看到连接正在做什么: http://jsfiddle.net/YKhmp/

答案 1 :(得分:4)

您的数组将以六个元素开头。由于您使用“a”加入,因此字母“a”将添加到所有元素之间的字符串中。

如果你的数组中有两个元素“Hello”和“World”并且连接了一个连字符,它将被加入“Hello-World”。因此,如果你有一个n值的数组,它只需要加入n-1。