[...Array(6)].map(x=>0);
// [0, 0, 0, 0, 0, 0]
ИЛИ
Array(6).fill(0);
// [0, 0, 0, 0, 0, 0]
Примечание: вы не можете зациклить пустые слоты Array(4).forEach( (_,i) => {} )
ИЛИ
Array(6).fill(null).map( (x,i) => i );
// [0, 1, 2, 3, 4, 5]
( typcript safe )
Создание вложенных массивов
При создании 2D массив с fill
должен интуитивно понятно создавать новые экземпляры.Но на самом деле произошло то, что тот же массив будет сохранен как ссылка.
var a = Array(3).fill([6]);
// [[6], [6], [6]]
a[ 0 ].push( 9 );
// [[6,9], [6,9], [6,9]]
Решение
var a = [...Array(3)].map(x=>[]);
a[ 0 ].push( 4, 2 );
// [[4,2], [ ], [ ]]
Таким образом, массив 3x2 будет выглядеть примерно так:
[...Array(3)].map(x=>Array(2).fill(0));
// [ [0,0] ,
// [0,0] ,
// [0,0] ]
Инициализация шахматной доски
var Chessboard = [...Array( 8 )].map( (x,j) =>
Array( 8 ).fill( null ).map( (y,i) =>
`${ String.fromCharCode( 65 + i ) }${ 8 - j }`));
// [ [ A8,B8,C8,D8,E8,F8,G8,H8 ],
// [ A7,B7,C7,D7,E7,F7,G7,H7 ],
// [ A6,B6,C6,D6,E6,F6,G6,H6 ],
// [ A5,B5,C5,D5,E5,F5,G5,H5 ],
// [ A4,B4,C4,D4,E4,F4,G4,H4 ],
// [ A3,B3,C3,D3,E3,F3,G3,H3 ],
// [ A2,B2,C2,D2,E2,F2,G2,H2 ],
// [ A1,B1,C1,D1,E1,F1,G1,H1 ] ]