例如:n=5 m=7
1 10 11 20 21 30 31
2 9 12 19 22 29 32
3 8 13 18 23 28 33
4 7 14 17 24 27 34
5 6 15 16 25 26 35
function fn(m, n) {//m 为行数,n为列数
var num = ''
for (var i = 0; i < m; i++) {//外层控制换行
num += `\n` //换行符
for (let index = 0; index < n; index++) {
if ((index + 1) % 2 == 0) {
num += (index + 1) * m - i + ' '// 偶数列结果 递减
} else {
num += index * m + 1 + i + ' '// 奇数列结果 递增
}
}
}
return num
}
console.log(fn(10, 10));
结果输出:
1 20 21 40 41 60 61 80 81 100
2 19 22 39 42 59 62 79 82 99
3 18 23 38 43 58 63 78 83 98
4 17 24 37 44 57 64 77 84 97
5 16 25 36 45 56 65 76 85 96
6 15 26 35 46 55 66 75 86 95
7 14 27 34 47 54 67 74 87 94
8 13 28 33 48 53 68 73 88 93
9 12 29 32 49 52 69 72 89 92
10 11 30 31 50 51 70 71 90 91
横向的就比较简单了
function fn(m, n) {
var num = ''
for (var i = 0; i < m; i++) {
num += `\n`
if (i % 2 == 0) { //偶数行递加
for (let index = 0; index < n; index++) {
num += (index - 0 + 1 + n * i) + ' '
}
} else { //奇数行递减
for (let index = n - 1; index >= 0; index--) {
num += (index - 0 + 1 + n * i) + ' '
}
}
}
return num
}
console.log(fn(5, 6));
结果输出:
1 2 3 4 5 6
12 11 10 9 8 7
13 14 15 16 17 18
24 23 22 21 20 19
25 26 27 28 29 30