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

83
Visualizações
Asesoramiento sobre la manipulación de matrices

de mi código a continuación, la constante myText almacena una cadena que tiene variables dinámicas en la forma {{nombre}}, {{edad}}, estoy tratando de usar expresiones regulares para encontrar esas variables dinámicas para reemplazarlas con valores reales. Tengo una matriz que almacena la variable esperada y su valor correspondiente. Necesito recorrer la matriz y buscar la matriz[elemento].variable de la cadena myText, y luego reemplazar todas las variables encontradas, con la matriz[elemento].valor correspondiente. Todavía no soy bueno en arreglos, y todo lo que sabía era el mapa, foreach, funciones, pero estos no me están dando los resultados.

 const text = ' hello {{name}}, you have made {{age}} now, and you are a {{gender}}' const expects = [ { expected: /{{name}}/, wanted: "Mary" }, { expected: /{{age}}/, wanted: 30 }, { expected: /{{gender}}/, wanted: "girl" }, ]; const result = expects.map(item => { return ( text.replace( item.expected, item.wanted ) ) })

usando la función de mapa, obtengo esto como un registro de consola

 ['<p>hello Mary, you have made {{age}} and you are now a {{gender}}</p>', '<p>hello {{name}}, you have made 30 and you are now {{gender}}</p>', '<p>hello {{name}}, you have made {{age}} and and you are now a girl</p>']

Esperaba

 hello Mary, you have made 30 and you are now a girl

amablemente ayuda

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

0

Esta puede ser una posible solución para lograr el objetivo deseado.

Fragmento de código

 const text = ' hello {{name}}, you have made {{age}} now, and you are a {{gender}}' const expects = [ { expected: /{{name}}/, wanted: "Mary" }, { expected: /{{age}}/, wanted: 30 }, { expected: /{{gender}}/, wanted: "girl" }, ]; console.log( expects.reduce( (acc, {expected, wanted}) => (acc.replace(expected, wanted)), text ) );

Explicación

  • Iterar sobre las expects usando .reduce()
  • Mantenga acc como el acumulador/agregador y configúrelo en text inicialmente
  • Desestructurar el iterador para acceder directamente a los accesorios expected y wanted
  • Use .replace() en el acumulador para efectuar los cambios/reemplazos deseados
about 4 years ago · Juan Pablo Isaza Relatório

0

expects el objeto esperado en una sola expresión regular, y luego necesita llamar a replace solo una vez:

 const expects = [ { expected: /{{name}}/, wanted: "Mary" }, { expected: /{{age}}/, wanted: 30 }, { expected: /{{gender}}/, wanted: "girl" }, ]; // Prepare const regex = RegExp(expects.map(({expected}) => expected.source).join('|'), "g"); const trans = Object.fromEntries(expects.map(({expected, wanted}) => [expected.source, wanted])); // Example const text = ' hello {{name}}, you have made {{age}} now, and you are a {{gender}}' const result = text.replace(regex, m => trans[m]); console.log(result);

Alternativamente, si se pretende que todas las "variables" estén codificadas como {{ }} , entonces podría buscar ese patrón genérico y realizar la búsqueda:

 const expects = [ { expected: /{{name}}/, wanted: "Mary" }, { expected: /{{age}}/, wanted: 30 }, { expected: /{{gender}}/, wanted: "girl" }, ]; // Prepare const trans = Object.fromEntries(expects.map(({expected, wanted}) => [expected.source, wanted])); // Example const text = ' hello {{name}}, you have made {{age}} now, and you are a {{gender}}' const result = text.replace(/{{.*?}}/g, m => trans[m] ?? m); 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