为什么新的Array(256).join('')返回255个空格?

时间:2018-04-11 07:34:28

标签: javascript

let white = new Array(256).join(' ')

console.log(white)

为什么以下代码段会返回255个空格的字符串?为什么不256?

4 个答案:

答案 0 :(得分:4)

因为如果你的数组有 2个元素,那么它们之间只有 1个间隙,所以加入它们总会产生length - 1

具有更明显|个字符的示例。我们有3个空字符串,加入它们只返回2个管道。

const array = ['', '', ''];

console.log(array.join('|'));

答案 1 :(得分:4)

由于关系 BETWEEN 空格和字符数。 您要在数组中的元素之前或之后添加空格。

let white = new Array(n).join(s); // s = n - 1

picture

let string = "One two three four five"; // 5 elements
let spaces = string.split(" ").length - 1;
console.log(spaces); // returns 4

答案 2 :(得分:2)

您创建一个由256个元素组成的数组。 join(' ')会通过在元素之间添加空格将它们连接到字符串(但不是在第一个之前或之后)。

答案 3 :(得分:0)

如其他答案所述:.join(' ')会在数组元素之间添加' ' ,并且只会重复n-1次。

如果您打算使用256长的空格行,请使用String.repeat()方法:

let white = ' '.repeat(256)