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 />");
});