每日一题

2018-10-18

2018-10-18  本文已影响0人  月魂king

完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五

const toChineseNum = (num) => {
  // 设置参数模板
  let a = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
  let b = ['', '十', '百', '千', '万']
  let arr = num.toString().split('').reverse(); // 将给定参数转为数组并将顺序取反
  let strArr = arr.map((item, index) => {
    if (index === 4 && parseInt(item) === 0) { // 如果index是4,并且该索引值是0则直接返回万
      return '万';
    }
    index = index > 4 ? index - 4 : index; // 如果索引值大于4则将其减4再从b模板取值
    return parseInt(item) === 0 ? '零' : a[item] + b[index];
  });
  return strArr.reverse().join('').replace(/(零(?=零))|(零$)|(零(?=万))/g, ''); // 最后在使用正则将表达式中多余的零去掉即可
}
上一篇下一篇

猜你喜欢

热点阅读