平分数组
function toChineseNumber(n) {
if (!Number.isInteger(n) && n < 0) {
throw Error('请输入自然数');
}
const digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
const positions = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿', '十亿', '百亿', '千亿'];
const charArray = String(n).split('');
let result = '';
let prevIsZero = false;
for (let i = 0; i < charArray.length; i++) {
const ch = charArray[i];
if (ch !== '0' && !prevIsZero) {
result += digits[parseInt(ch)] + positions[charArray.length - i - 1];
} else if (ch === '0') {
prevIsZero = true;
} else if (ch !== '0' && prevIsZero) {
result += '零' + digits[parseInt(ch)] + positions[charArray.length - i - 1];
}
}
if (n < 100) {
result = result.replace('一十', '十');
}
return result;
}
function initHeads(nums) {
return new Array(nums).fill(null).map((v,i)=>toChineseNumber(i + 1))
}
function getTableData(nums, rowLimit=11) {
let result = []
const words = initHeads(nums)
let tmpList = [...words, '总分']
if (tmpList.length <= rowLimit) {
result.push(tmpList)
} else {
result = equalSplitList(tmpList, rowLimit)
}
return result
}
console.log(getTableData(12, 5))
function equalSplitList(list, rowLimit) {
let result = []
let rowCount = Math.ceil(list.length / rowLimit)
list.length = rowLimit * rowCount
for (let i = 0; i < rowCount; i++) {
const cur = list.slice(i * rowLimit, (i + 1) * rowLimit)
result.push(cur)
}
return result
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78