No estoy definido cuando intento ejecutar mi código, no estoy seguro de por qué no activa la primera condición, ¿alguien sabe qué estoy haciendo mal? En este punto, sé que hay una mejor solución para resolver este problema, pero me gustaría saber qué estoy haciendo mal en este caso particular.
var romanToInt = function(s) { let romanNumerals = {I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000} let integer = 0 let sToIndex = s.split("") for (let i = 0; i <= sToIndex.length; i++ ){ for (let j = 0; j <= romanNumerals.length -1; j++){ if (sToIndex[i] === "I" && (sToIndex[i + 1] === "V" || "X")){ integer = Object.values(romanNumerals)[j + 1] - 1 console.log(integer) } else if (Object.key(sToIndex)[i] === "X" & Object.key(sToIndex)[i + 1] === "C"|| "L"){ integer = Object.values(romanNumerals)[j + 1] - 10 return integer }else if (Object.key(sToIndex)[i] === "C" & Object.key(sToIndex)[i + 1] === "D" || "M"){ integer = Object.values(romanNumerals)[j + 1] - 10 return integer }else { integer = Object.values(romanNumerals)[j] + Object.values(romanNumerals)[j+1] return integer } } } } console.log(romanToInt("IV"))