新的Array(5).toString()返回四个逗号

时间:2019-06-28 19:27:29

标签: javascript arrays string methods

  • 要了解下面的代码片段,我查看了此链接。
  • 但是我仍然无法弄清楚为什么它会在控制台中打印四个逗号。
  • 因为我要创建五个项目的数组
  • 你能告诉我它是如何工作的。
new Array(5).toString();
",,,,"

4 个答案:

答案 0 :(得分:3)

toString()方法迭代将Array中的所有元素抛出,并推入字符串并在它们之间推入,

当您定义具有5个元素的空数组时,应用toString会将其转换为五个带有4个“,”的“空”字符串

答案 1 :(得分:2)

想象一下每个数组索引中的值是什么样子。

[1,2,3,4,5].join(); // Returns 1,2,3,4,5

现在,如果删除数字,则中间只剩下逗号。

new Array(5).join(); // Returns ,,,, because the values are blank.

答案 2 :(得分:0)

new Array(5)返回一个sparse array或内部有5个空格的数组。唯一要做的就是将数组对象的length属性设置为指定的参数(在这种情况下为5)。

console.log(new Array(5)) // browser console --> [empty × 5]

很自然地,如果您尝试打印其内容,它将显示出您有5个空白,中间用,

隔开。

console.log(new Array(5).toString()) // ,,,, <-- 5 empty ',' separated elements

答案 3 :(得分:-1)

如您所见,someArray.toString()将返回数组内部的内容,但不包含[]

console.log([1,2,3,4,5])
console.log([1,2,3,4,5].toString())

因此,如果您没有注意到array元素,它将返回空字符串并仅显示逗号。 (Array(5)[,,,,,]相同)

console.log([,,,,])
console.log([,,,,].toString())

Array(5)将仅返回具有属性length: 5的数组。 Wich将其作为元素undefined

如果您想做其他事情,可以undefined使用.fill

console.log(Array(5))
console.log(Array(5).fill(""))
console.log(Array(5).fill("anything"))