Для заполнения двумерного массива в JavaScript можно использовать циклы. Например, чтобы заполнить массив нулями, можно использовать следующий код:
const size = 4; // размер массива
const matrix = []; // создание пустого массива
// заполнение массива нулями
for (let i = 0; i < size; i++) {
matrix[i] = []; // создание вложенных массивов
for (let j = 0; j < size; j++) {
matrix[i][j] = 0; // заполнение ячеек нулями
}
}
Чтобы заполнить массив другими значениями, нужно изменить значение внутри вложенного цикла. Например, чтобы заполнить массив единицами, можно заменить matrix[i][j] = 0 на matrix[i][j] = 1.
Чтобы исправить смещение на один по индексу вправо, нужно изменить формулу расчета строки и столбца. Например, чтобы первая строка массива была [1][1][1][1], можно использовать следующий код:
const cellIndex = parseInt(this.getAttribute("position"));
const row = Math.floor(cellIndex / size);
const col = cellIndex % size - 1;
matrix[row][col] = 1;
console.log(matrix, row, col)
Здесь мы убрали вычитание единицы из строки и добавили его к столбцу, чтобы первый элемент массива был на позиции 0.