Я пытался создать некоторые случайные данные, используя карту. К моему удивлению, я не мог понять, почему этот код не работает.
Рассмотрим следующий фрагмент, который работает как ожидалось:
const empty = [undefined, undefined];
const rand = empty.map(item => Math.random());
Output: [0.4774752874308936, 0.8482276976659398]
Я попытался упростить бит и сделать следующее
const rand = Array(2).map(item => Math.random())
Output: [undefined × 2]
Я не понимаю, почему это происходит. Очевидно, что оба массива, генерируемые Array (n) и [], являются типичными массивами и имеют все прототипы.
Array(2) instanceof Array
true
[undefined, undefined] instanceof Array
true
Array.isArray(Array(2))
true
Array.isArray([undefined, undefined])
true
Может кто-нибудь указать, где я здесь не так?