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

198
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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