Why do we need to destructure Array(3) to produce a multidimensional array?
[...Array(3)].map(_=>Array(5).fill(0))
/* output
(3) [Array(5), Array(5), Array(5)]
0 : (5) [0, 0, 0, 0, 0]
1 : (5) [0, 0, 0, 0, 0]
2 : (5) [0, 0, 0, 0, 0]
length: 3
*/
Array(3).map(_=>Array(5).fill(0))
(3) [empty × 3]
length: 3