为什么Array(x).join填充x-1结果?在Javascript中

时间:2015-06-17 20:17:13

标签: javascript arrays

EG。Array(5).join(" 5");

打印: 5 5 5 5

谢谢!我是JS n00b

3 个答案:

答案 0 :(得分:3)

“join”的参数是元素之间使用的分隔符。声明的数组有五个元素;所以,实际上,你在五个空白数组元素之间插入了四个“5”“分隔符”,因此就是你正在观察的结果。

答案 1 :(得分:1)

不是。

Array("1", "2").join("x")
"1x2"

你有Array(5)实际上是:

Array(5)
[undefined × 5]

加入“5”

所以你有{undefined} 5{undefined} 5{undefined} 5{undefined} 5{undefined}

未定义不打印任何内容。所以你得到:

5 5 5 5

答案 2 :(得分:1)

尝试使用其他连接字符:

Array(5).join('a5');

    a5 a5 a5 a5
   0  1  2  3  4

你有5个元素,但由于它们是EMPTY元素,你永远不会看到0位置。

或更好:

 ['x', 'x', 'x', 'x', 'x'].join('a')

 xaxaxaxax
 0 1 2 3 4