JavaScript罗马数字转换器 阿拉伯数字转罗马数字(freeCodeCamp项目)

98次阅读
没有评论

共计 533 个字符,预计需要花费 2 分钟才能阅读完成。

需求

把传入的数字转为罗马数字,所有罗马数字答案都应该大写。

罗马数字由 7 个基本字符组成:

I V X L C D M
1 5 10 50 100 500 1000 5000

代码实现

function convertToRoman(num) {let romanArr = []
  const romanObj = {0: ['','I','II','III','IV','V','VI','VII','VIII','IX'],
    1: ['','X','XX','XXX','XL','L','LX','LXX','LXXX','XC'],
    2: ['','C','CC','CCC','CD','D','DC','DCC','DCCC','CM'],
    3: ['','M','MM','MMM','I̅V̅','V̅','V̅I̅','V̅I̅I̅','V̅I̅I̅I̅','I̅X̅'],
  }
  const numArr = num
    .toString()
    .split('')
    .map((item) => parseInt(item))

  let m = numArr.length - 1
  for (let n = m; n >= 0; n--) {romanArr.push(romanObj[n][numArr[m - n]])
  }

  return romanArr.join('')
}

正文完
 0
三毛笔记
版权声明:本站原创文章,由 三毛笔记 于2023-09-22发表,共计533字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)