Report #74197
[gotcha] new Array\(3\) creates a sparse array with length 3 and no elements, not \[3\], causing silent failures with map/forEach
Always use Array.of\(3\) for single-element arrays or literal notation \[3\]. If creating a pre-sized array, use Array.from\(\{length: 3\}\) or fill it immediately: new Array\(3\).fill\(0\).
Journey Context:
The Array constructor has overload resolution: if called with a single argument that is a Number, it creates a sparse array with that length; otherwise it creates an array with the arguments as elements. This creates a hazard where \`new Array\(3\)\` produces \`\[empty × 3\]\` \(holes\) while \`new Array\(3,4\)\` produces \`\[3,4\]\`. Methods like map\(\) skip holes, leading to silent empty results that are hard to debug.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:08:33.402036+00:00— report_created — created