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

184
Vistas
¿Cómo usar "para" junto con el reemplazo de cadena?

Quiero hacer varios reemplazos en la misma cadena. Tengo esto:

 ignoredids = [{"ignoredid":"3329"},{"ignoredid":"25895"}]; userlist = `<div id="u343">something</div><div id="u3143">something</div><div id="u25895">something</div><div id="u5343">something</div><div id="u3329">something</div>`;

después de los reemplazos debería verse así:

 <div id="u343">something</div><div id="u3143">something</div><div id="u25895">ignore this</div><div id="u5343">something</div><div id="u3329">ignore this</div>

Así que probé:

 for (let { ignoredid } of ignoredids) { mylist = userlist.replace(`<div id="u${ignoredid}">something</div>`,`<div id="u${ignoredid}">ignore this</div>`); }

pero no parece hacer nada. ¿Qué está mal?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

De la forma en que lo escribió ahora, solo reemplazará en la última identificación y la asignará a la variable mylist , porque .replace no muta la cadena.

Si userlist a la lista de usuarios en lugar de a mylist , funcionará de la manera que usted quiere que funcione, porque en realidad estamos modificando la cadena en cada iteración:

 ignoredids = [{"ignoredid": "3329"}, {"ignoredid": "25895"}]; userlist = `<div id="u343">something</div><div id="u3143">something</div><div id="u25895">something</div><div id="u5343">something</div><div id="u3329">something</div>`; for (let { ignoredid} of ignoredids) { userlist = userlist.replace(`<div id="u${ignoredid}">something</div>`, `<div id="u${ignoredid}">ignore this</div>`); } document.getElementById("myDiv").innerHTML = userlist;
 <div id="myDiv"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

  • Cree una matriz de ID con el prefijo "u" solamente
  • No use replace() con cosas codificadas.
  • Y dado que la expresión regular nunca debe usarse en cadenas similares a HTML, use en su lugar un analizador DOM adecuado o un elemento inmemory . Leer sobre DOMParser.parseFromString()

 // Helper function const arrHas = (arr, val) => arr.some(a => val === a); // Your stuff: const replacer = "IGNORE THIS"; const ignoredids = [ {"ignoredid":"3329"}, {"ignoredid":"25895"}, ]; const userlist = `<div id="u343">Lorem ipsum</div> <div id="u3143">Dolor sit amet</div> <div id="u25895">consectetur adipisicing</div> <div id="u5343">Elit enim </div> <div id="u3329">Nemo eveniet</div>`; // Create an Array of "u" prefixed IDs const uIDs = ignoredids.map(o => `u${o.ignoredid}`); // Use DOMParser!! const DOC = new DOMParser().parseFromString(userlist, "text/html"); [...DOC.body.children].forEach(EL => { if (arrHas(uIDs, EL.id)) EL.textContent = replacer; }); const result = DOC.body.innerHTML; console.log(result)

el result es ahora esta cadena similar a HTML:

 <div id="u343">Lorem ipsum</div> <div id="u3143">Dolor sit amet</div> <div id="u25895">IGNORE THIS</div> <div id="u5343">Elit enim </div> <div id="u3329">IGNORE THIS</div>
about 4 years ago · Juan Pablo Isaza 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