оставлю тут вариант на данный момент
function matrix(c, d) {
for (var h = [], a = 0; a < d * d; a += d * (c - 1))
for (var f = 0; f < d; f += c) {
for (var g = [], e = [], b = 0; b < c; b++) e.push(a + b + 1);
g.push(e);
for (b = 0; b < c - 1; b++) e = e.map(function(a) {
return a + d
}), g.push(e);
h.push(g);
a += c
}
return h
};
alert(JSON.stringify(matrix(2,4)))
alert(JSON.stringify(matrix(3,9)))
console.log(matrix(3,9))