Это код на квадратную матрицу,
как реализовать чтобы высоту и ширину задавать числами
N = 7;
// w = 6;
// h = 5;
let m = [];
for (let i = 0; i < N; i++) {
m.push([]);
for (let j = 0; j < N; j++) {
m[i].push(0);
}
}
let start = 0, end = N - 1;
while (start <= end) {
fillLayer(m, start++, end--);
}
function fillLayer(m, s, e) {
for (let i = s; i <= e; i++) {
for (let j = s; j <= e; j++) {
m[i][j]++;
}
}
}
console.log(m);
должно получится
[
[1, 1, 1, 1, 1, 1],
[1, 2, 2, 2, 2, 1],
[1, 2, 3, 3, 2, 1],
[1, 2, 2, 2, 2, 1],
[1, 1, 1, 1, 1, 1]
];