Ayuda con Conversor de números romanos

Cuéntanos qué está pasando:
Nesecito ayuda, funciona correctamente cuando lo utilizo enlazado junto un html, pero por alguna razon no funciona cuando se ejecuta en FreeCodeCamp.
Cualquier ayuda se agredece, gracias.
Tu código hasta el momento

function convertToRoman(num) {
     const romanNum = [
       ['', "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"],
       ['', "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"],
       ['', "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"],
       ['', "M", "MM", "MMM"]
   ];
   let numArr = String(num).split("").map((num) => { return Number(num) });
   let numLeng = num.length - 1; var str = '';
   for (let index = 0; index < num.length; index++) {
       str += romanNum[numLeng][numArr[index]];
       numLeng--;
   };
return str;
}

convertToRoman(36);
   **Información de tu navegador:**

El agente de usuario es: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

Desafío: Conversor de números romanos

Enlaza al desafío:

En el ciclo for

 for (let index = 0; index < num.length; index++) {
       str += romanNum[numLeng][numArr[index]];
       numLeng--;
   };

Estás evaluando el tamaño de num num.length, pero num es un número entero, por lo tanto, no puedes usar .length en num, para poder usar num.length, num tiene que ser convertirdo a un string

talvez cuando corres tu programa en tu máquina utilizas

convertToRoman("36")

por eso te funciona

Era eso, además, tampoco estaba concatenando bien la variante str. No lo habría notado sin tu ayuda, de verdad, muchas gracias.

1 Like