Не вижу причин ограничиваться какими-то конкретными числами, сделаем функцию, создающую таблицу любого размера, какой укажут - количества строк и столбцов будут её параметрами.
Циклы есть:
function createTable(
rows,
cols,
{
rowSeparator = '\n',
colSeparator = ' ',
} = {},
) {
const zeros = '0'.repeat(Math.ceil(Math.log10(rows * cols + 1)));
const result = [];
for (let i = 0; i < rows; i++) {
result.push(i ? rowSeparator : '');
for (let j = 0; j < cols; j++) {
result.push(
j ? colSeparator : '',
(zeros + (cols * i + j + 1)).slice(-zeros.length)
);
}
}
return ''.concat(...result);
}
Циклов нет:
function createTable(
rows,
cols,
{
rowSeparator = '\n',
colSeparator = ' ',
} = {},
) {
const { length } = `${rows * cols}`;
return Array.from({ length: rows }, (_, i) =>
Array.from({ length: cols }, (_, j) =>
`${cols * i + j + 1}`.padStart(length, 0)
).join(colSeparator)
).join(rowSeparator);
}
Примеры использования:
console.log(createTable(11, 9));
console.log(createTable(10, 10));
document.body.innerHTML = createTable(16, 16, {
rowSeparator: '<br>',
colSeparator: '____',
});