阿拉伯数字转汉字

382 阅读1分钟
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 函数将阿拉伯数字转换成了汉字字符串。具体使用时,只需要将数字作为参数传入该函数即可得到对应的汉字字符串。