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

177
Visualizações
JavaScript: haga coincidir una palabra en un texto con una palabra en una matriz y reemplácela

Necesito cambiar este texto:

 var text = `this is an example text. 1coffee , 2 coffee , 1 apple, 2apple , ?banana ,carrot`;

usando estas 2 matrices:

 var arrOld = ["coffee", "apple", "banana" , "carrot"]; var arrnew = ["laptop", "keyboard", "mouse", "printer"];

para obtener un resultado como este:

 `this is an example text. 1laptop , 2 laptop , 1 keyboard, 2keyboard , ?mouse ,printer`

Estaba intentando algo como:

 for (let i = 0; i < arrOld.length; i++) { arrNew[i]; arrOld[i]; text.replace(arrOld[i],arrNew[i]) }

pero no funcionó.

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

0

De los documentos en .replace ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace ):
"El método replace() devuelve una nueva cadena con algunas o todas las coincidencias de un patrón reemplazadas por un reemplazo".
Esto significa que text.replace() no manipula la variable de texto. Para solucionar esto, simplemente haga lo siguiente en su ciclo:
text = text.replace()
Esto capturará el texto modificado en la variable de texto. Sin hacer esto, está realizando los cambios, pero no los está utilizando (los olvida).

about 4 years ago · Juan Pablo Isaza Relatório

0

Podrías usar String.prototype. replaceAll() :

 var text = "this is an example text. 1coffee , 2 coffee , 1 apple, 2apple , ?banana ,carrot"; var arrOld = ["coffee", "apple", "banana", "carrot"]; var arrnew = ["laptop", "keyboard", "mouse", "printer"] for (let i = 0; i < arrOld.length; i++) { text = text.replaceAll(arrOld[i], arrnew[i]); } console.log(text);

Y tal vez también Array.prototype. map() :

 var text = "this is an example text. 1coffee , 2 coffee , 1 apple, 2apple , ?banana ,carrot"; var arrOld = ["coffee", "apple", "banana", "carrot"]; var arrnew = ["laptop", "keyboard", "mouse", "printer"]; arrOld.map((old, i) => text = text.replaceAll(old, arrnew[i])); console.log(text);

about 4 years ago · Juan Pablo Isaza Relatório

0

replace devuelve una nueva string en lugar de cambiar la anterior

puedes usar reduce

también agregue RegExp porque replace solo funciona para la primera coincidencia que encontró

 const text = `this is an example text. 1coffee , 2 coffee , 1 apple, 2apple , ?banana, another banana ,carrot`; var arrOld = ["coffee", "apple", "banana" , "carrot"]; var arrnew = ["laptop", "keyboard", "mouse", "printer"]; const resultWitoutRegexp = arrOld.reduce((res, textToChange, i) => res.replace(textToChange, arrnew[i]) , text) const result = arrOld.reduce((res, textToChange, i) => res.replace(new RegExp(textToChange, 'g'), arrnew[i]) , text) console.log(resultWitoutRegexp) console.log(result)

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