Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

438
Visualizações
How to use Javascript .replace() method within a for loop?

I am attempting to take a given string and replace a given number in that string with a character. Specifically:

  • 5 is to be replaced with "S"
  • 1 is to be replaced with "I"
  • 0 is to be replaced with "O"

(this is a Kata exercise)

I have written a function which should:

  1. Take the string and convert it into an array
  2. Loop over the array
  3. Replace each instance of the aforementioned numbers with the appropriate replacements using .replace()
  4. Return the joined string.

My code is as appears below

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('');
}

The function returns the string exactly as initially provided, unchanged. I suspect my issue is with the way I've used the .replace() method within the loop, or the index positions declared.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

String.prototype.replace returns a new string and does not mutate the variable it was executed on. That's why you need to assign the result of replacement somewhere.

To fix your code just do the following with each replacement:

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

Note 1: since array[i] is always a single character, there is no need in replace, because you can just compare like so:

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

or oneliner:

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

Note 2: for loop for a replacement is not a clean code. JavaScript is very flexible and provides much better solutions to the problem. Eg. String.prototype.replaceAll.

about 4 years ago · Juan Pablo Isaza Relatório

0

You can do with simple regex replace() based on your key=>value like this,

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 Relatório

0

Try this :

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda