new Array (5) .toString (), возвращающий четыре запятых - PullRequest
0 голосов
/ 28 июня 2019
  • чтобы понять приведенный ниже фрагмент кода, я посмотрел по этой ссылке.
  • Но все же я не могу понять, почему он печатает четыре запятых в консоли.
  • , так какЯ создаю массив из пяти элементов
  • Подскажите, как он работает.
new Array(5).toString();
",,,,"

Ответы [ 4 ]

3 голосов
/ 28 июня 2019

toString() метод итерирует, бросает все элементы в Array, помещает их в строку и нажимает , между ними.

Как вы определили пустой массив с 5 элементами, при применении toString он преобразует его в пять "пустых" строк с 4 "," между ними

2 голосов
/ 28 июня 2019

Представьте, как это будет выглядеть со значениями в каждом из индексов массива.

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

Теперь, если вы удалите числа, вы просто останетесь с запятыми в середине.

new Array(5).join(); // Returns ,,,, because the values are blank.
0 голосов
/ 28 июня 2019

new Array(5) возвращает разреженный массив или массив с 5 пустыми пробелами внутри. Единственное, что это делает, - задает для свойства length объекта массива указанный аргумент (в данном случае 5).

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

Естественно, если вы попытаетесь напечатать его содержимое, это покажет вам, что у вас есть 5 пустых мест, разделенных ,

console.log(new Array(5).toString()) // ,,,, <-- 5 empty ',' separated elements
0 голосов
/ 28 июня 2019

Как видите, someArray.toString() вернет то, что находится внутри массива, но без [ и ].

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

Итак, если вы заметили элемент массива, он вернет пустую строку и напечатает только запятую.(Array(5) совпадает с [,,,,,])

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

Array(5) вернет массив только со свойством length: 5.Которые сделают его элементами undefined.

Если вы хотите сделать что-то еще, тогда undefined вы можете использовать .fill

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