Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

437
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!