เราจำเป็นต้องเขียนฟังก์ชันที่รับสตริงของตัวเลขโรมันและส่งกลับค่าทศนิยม (ฐาน 10) ที่เทียบเท่า ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
ตัวอย่าง
const romanToInt = (s) => {
const legend = "IVXLCDM";
const l=[1,5,10,50,100,500,1000];
let sum=0;
while(s){
if(!!s[1] && legend.indexOf(s[0]) < legend.indexOf(s[1])){
sum += (l[legend.indexOf(s[1])] - l[legend.indexOf(s[0])]);
s = s.substring(2, s.length);
} else {
sum += l[legend.indexOf(s[0])];
s = s.substring(1, s.length);
}
}
return sum;
};
console.log(romanToInt('CLXXVIII'));
console.log(romanToInt('LXXXIX'));
console.log(romanToInt('LV'));
console.log(romanToInt('MDLV')); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
178 89 55 1555