# 中文转数字
// 在中文页面解析、中文数据处理中,常常遇到用中文表示的数字,例如:五千三百万零五百零一。
// 我们一般需要把它转化成int型整数,进行实际存储和使用。 请完成一亿(不含)以内的中文数字到int整数的转换
const enumObj = {
一: 1,
二: 2,
三: 3,
四: 4,
五: 5,
六: 6,
七: 7,
八: 8,
九: 9,
};
function transform(numStr) {
// 五 千 三 百 万 零 五 百 零 一
const numStrArr = numStr.split("");
let num = 0;
let d = 1;
let isWan = false;
for (let i = numStrArr.length; i >= 0; i--) {
const key = numStrArr[i];
const val = enumObj[key];
if (val) {
num += val * d;
} else if (key === "零") {
} else if (key === "百") {
if (isWan) {
d = 1000000;
} else {
d = 100;
}
} else if (key === "万") {
isWan = true;
} else if (key === "千") {
if (isWan) {
d = 10000000;
} else {
d = 1000;
}
}
}
return num;
}
console.log(transform("五千三百万零五百零一"));
console.log(transform("四千三百万三千五百零九"));
console.log(transform("四百万一千零九"));
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
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