Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

84
Vistas
ReplaceAll no reemplaza todo en función recursiva

Estoy usando una función recursiva que toma una cadena de plantilla como esta:

 <div class='${classes}'>

y reemplaza el marcador de posición literal de la plantilla ${clases} con el valor de un objeto que se ve así:

 { classes: 'bg-${color} text-${color}', color: 'blue' }

Algo a tener en cuenta aquí es que dentro del objeto, hay más anidamiento de cadenas de plantilla, de ahí el motivo de la función recursiva.

Lo que no puedo entender es por qué la función reemplazar todo solo reemplaza la primera instancia de ${color} y deja la segunda sin definir.

Fragmento de trabajo a continuación:

 function buildTemplate(string) { var matched = false; string = string.replaceAll(/\$\{(.*?)\}/g, function (match, key) { if (match) { matched = true; } const selection = selectors[key]; delete selectors[key]; return selection; }); if (matched) { string = buildTemplate(string); } console.log(string); } let templateString = "<div class='${classes}'>"; const selectors = { classes: 'bg-${color} text-${color}', color: 'blue' } buildTemplate(templateString);

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Está eliminando selectors , cuando lo necesita dos veces.
Eliminar línea;

 // delete selectors[key]

o a selection no se le asigna nada

No es necesario eliminar nada cuando se trata de un objeto al que se accede a través de una clave.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda