เราต้องเขียนฟังก์ชันที่รับสตริงตัวเลขโรมันและคืนค่าเทียบเท่าทศนิยม (ฐาน 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