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

149
Visualizações
¿Por qué obtengo un resultado incorrecto al usar str.replace()?

Mi código tiene un valor de índice que apunta a un carácter en una cadena y tengo que reemplazar todas las instancias de ese carácter con el valor anterior y el siguiente valor alternativamente, excepto el valor del carácter de índice dado. A continuación se muestra mi código para implementar esto:

 function replaceChar(string,idx){ a = string[idx] b= [] pre_val = string[idx - 1] post_val = string[idx + 1] for(let i=0; i< string.length ; i++){ if(i==idx){ continue } if (string[i]===a){ b.push(i) } } for(i=0; i<b.length; i++){ if (i%2==0){ string = string.replace( string[b[i]],pre_val) } if (i%2==1){ string = string.replace(string[b[i]],post_val) } } return string }

La entrada dada es:

 console.log(replaceChar('Baddy',2))

La salida preferida es:

 Baday

Lo que obtengo es:

 Baady string = string.replace( string[b[i]],pre_val)

=> El valor de b[i] en la declaración anterior es 3, por lo que la cadena[3] debe reemplazarse con a (el valor anterior) y la salida debe ser Baday. No estoy seguro de qué está mal.

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

0

Dado que desea reemplazar un carácter en un índice determinado y está realizando múltiples reemplazos (potencialmente), puede usar una matriz en su lugar (temporalmente):

 let tmp = string.split(''); //from string into array for(let i = 0; i<b.length; i++){ if (i%2==0){ tmp[b[i]] = pre_val; } if (i%2==1){ tmp[b[i]] = post_val; } } return tmp.join('') //back into a string

Además, debe declarar sus otras variables correctamente.

 let a = string[idx] let b = [] let pre_val = string[idx - 1] let post_val = string[idx + 1]
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