Convert Roman number to integer

Hint

Create Roman to number mapping lists, ['M', 'D', 'C', 'L', 'X', 'V', 'I'] and [1000, 500, 100, 50, 10, 5, 1]. Iterate over each char in Ramon number. From Roman list, if next char's position is less than current char's, add number[next char's position from Roman list] - number[current char's position from Roman list] to ouput and increase i's position by 2. Otherwise, add number[current char's position from Roman list] to output and increase i's position by 1.

# Python implementation
data = "MCMIV"
rs = ['M', 'D', 'C', 'L', 'X', 'V', 'I']
ns = [1000, 500, 100, 50, 10, 5, 1]

output = 0
i = 0

while i < len(data):
  p1 = rs.index(data[i])
  p2 = rs.index(data[i + 1]) if (i + 1 < len(data)) else float('inf')

  if p2 < p1:
    output += ns[p2] - ns[p1]
    i += 1
  else:
    output += ns[p1]

  i += 1

print(output)
// Javascript implementation
const data = "MCMIV";
const rs = ['M', 'D', 'C', 'L', 'X', 'V', 'I'];
const ns = [1000, 500, 100, 50, 10, 5, 1];

let output = 0;

for (let i = 0; i < data.length; i++) {
  const p1 = rs.indexOf(data.at(i));
  const p2 = (i + 1 < data.length) ? rs.indexOf(data.at(i + 1)) : Infinity;
  
  if (p2 < p1) {
    output += ns[p2] - ns[p1];
    i++;
  } else {
    output += ns[p1];
  }
}

console.log(output);