Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

170
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!