JSFiddle - React, Tailwind, and code Playground
by Julian
HTML
<div id="results"></div>
JavaScript
var NumeralValues = {
M: 1000,
D: 500,
C: 100,
L: 50,
X: 10,
V: 5,
I: 1
};
function romanToInt(str) {
var vs = str.toArray().map(function(c) {
return NumeralValues[c];
});
return vs.inject(0, function(total, value, i) {
return total + (vs[i+1] > value ? -value : value);
});
}
// output some tests
["MCMXCIX", "MMMXXXIII", "IV"].each(function(romanNumber) {
$("results").insert(romanNumber + ": " + romanToInt(romanNumber) + "<br />");
});