function resolve(roman) {
var map = {
M: 1000,
D: 500,
C: 100,
L: 50,
X: 10,
V: 5,
I: 1
};
var index = 0, integer = 0;
while(roman[index++]) {
integer += map[roman[index - 1]] * (
map[roman[index - 1]] < (map[roman[index]] || 0) ? -1 : 1
);
}
return integer;
}
console.assert(resolve('MCDXXXVII') === 1437, 1437);
by @barretlee