const digits = '零一二三四五六七八九';
const units = ['', '十', '百', '千', '万', '亿'];
const toChinese = (num) => {
if (num === 0) return digits[0];
const nums = String(num).split('').reverse().map(Number);
const result = [];
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== 0) {
result.push(digits[nums[i]] + units[i]);
} else if (i !== 0 && result[result.length - 1] !== digits[0]) {
result.push(digits[0]);
}
}
return result.reverse().join('');
};
该函数接受一个数字作为参数,返回对应的汉字字符串。具体实现中定义了两个字符串常量,一个用于表示阿拉伯数字,一个用于表示单位。然后将数字转换成数组,并从低位到高位遍历,依次将每个数字转换成汉字,并加上对应的单位。在转换过程中,需要特别注意数字 0 的处理,它需要根据前面是否有数字来判断是否需要转换成“零”。
console.log(toChinese(123456)); // 输出 "十二万三千四百五十六"
console.log(toChinese(10000)); // 输出 "一万"
console.log(toChinese(10001)); // 输出 "一万零一"
console.log(toChinese(100000000)); // 输出 "一亿"
在该示例中,我们使用了 toChinese 函数将阿拉伯数字转换成了汉字字符串。具体使用时,只需要将数字作为参数传入该函数即可得到对应的汉字字符串。