Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

433
Vistas
¿Cómo usar el método Javascript .replace() dentro de un bucle for?

Estoy intentando tomar una cadena dada y reemplazar un número dado en esa cadena con un carácter. Específicamente:

  • 5 debe ser reemplazado por "S"
  • 1 debe ser reemplazado por "I"
  • 0 debe ser reemplazado por "O"

(este es un ejercicio de Kata )

He escrito una función que debería:

  1. Tome la cadena y conviértala en una matriz
  2. Bucle sobre la matriz
  3. Reemplace cada instancia de los números mencionados anteriormente con los reemplazos apropiados usando .replace()
  4. Devuelve la cadena unida.

Mi código es el que aparece a continuación.

 Function correct(string) { let array = string.split('') for (let i = 0; i < array.length; i++) { array[i].replace('5', 'S') array[i].replace('0', 'O') array[i].replace('1', 'I') } return array.join(''); }

La función devuelve la cadena exactamente como se proporcionó inicialmente, sin cambios. Sospecho que mi problema es la forma en que usé el método .replace() dentro del bucle, o las posiciones de índice declaradas.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

String.prototype.replace devuelve una nueva cadena y no muta la variable en la que se ejecutó. Es por eso que necesita asignar el resultado del reemplazo en alguna parte.

Para arreglar su código, simplemente haga lo siguiente con cada reemplazo:

 array[i] = array[i].replace('5', 'S');

Nota 1: dado que array[i] es siempre un solo carácter, no hay necesidad de replace , porque puede comparar así:

 if (array[i] === '5') { array[i] = 'S'; }

o una sola línea:

 array[i] = array[i] === '5' ? 'S' : array[i];

Nota 2: el bucle for para un reemplazo no es un código limpio. JavaScript es muy flexible y proporciona soluciones mucho mejores al problema. P.ej. String.prototype.replaceAll .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede hacerlo con una simple expresión regular replace() en función de su clave => valor como este,

 const key_to_replace = { '5': 'S', '1': 'I', '0': 'O' } const correct = (str) => str.replace(/./g, (m) => key_to_replace[m] ?? m); console.log(correct("this 5is a0 test1 with 55abc"))

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba esto :

 const inputStr = 'AB5DE0G1H'; function correct(string) { return string.replaceAll('5', 'S').replaceAll('0', 'O').replaceAll('1', 'l') } console.log(correct(inputStr));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda