Chúng tôi được yêu cầu viết một hàm nhận vào một chuỗi số la mã và trả về giá trị tương đương với số thập phân (cơ số 10) của nó. Do đó, hãy viết mã cho chức năng này -
Ví dụ
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'));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
178 89 55 1555