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

232
Visualizações
eliminando/comprobando si hay duplicados de la matriz y guardando/actualizando la matriz dinámicamente en el almacenamiento local (JavaScript)

Tengo esta función para enviar datos a la matriz y guardarlos en el almacenamiento local. Mi problema es que mi función empuja a la matriz/guarda en el almacenamiento local a pesar de que existe el mismo ID de perfil. Quiero algo que verifique si el mismo ID de perfil ya existe, elimine el objeto y del almacenamiento local/matriz, luego empuje al almacenamiento local/matriz. En resumen, no quiero que se guarden duplicados del mismo ID de perfil en el almacenamiento local o en la matriz. También quiero mantener la mayoría de los objetos nuevos en lugar de los antiguos y nuevos guardados en la matriz para el mismo ID de perfil.

 PUSHData(){ var myobj = { Button: this.isReadMore, Class: this.sampleElem.className, ProfiliD: this.id, }; const saved = JSON.parse(localStorage.getItem('CollapseState')); if(saved != null){ this.array.push(myobj); localStorage.setItem('CollapseState',JSON.stringify(this.array)); }else{ this.array.push(myobj); localStorage.setItem('CollapseState',JSON.stringify(this.array)); }

así es como se ve localStorage ahora

 0: {Button: true, Class: "ShowHide", ProfiliD: "115279"} 1: [{Button: true, Class: "ShowHide", ProfiliD: "115279"},…] 0: {Button: true, Class: "ShowHide", ProfiliD: "115279"} 1: [{Button: true, Class: "ShowHide", ProfiliD: "115192"}]

Realmente agradecería cualquier ayuda.

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

0

debe actualizar el elemento existente en la matriz en lugar de insertar uno nuevo cuando existe el mismo ProfiliD en localStorage:

 PUSHData(){ var myobj = { Button: this.isReadMore, Class: this.sampleElem.className, ProfiliD: this.id, }; const saved = JSON.parse(localStorage.getItem('CollapseState')); if(saved != null){ this.array[this.array.findIndex(x=>x.ProfiliD == myobj.ProfiliD)] = myobj; localStorage.setItem('CollapseState',JSON.stringify(this.array)); }else{ this.array.push(myobj); localStorage.setItem('CollapseState',JSON.stringify(this.array)); } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Como CollapseState contiene una matriz de objetos en un localStorage. Puede seguir los pasos a continuación para lograr este requisito :

  • Compruebe si la matriz CollapseState existe en localStorage o no (lo que ya está haciendo)

     const saved = JSON.parse(localStorage.getItem('CollapseState'));
  • Ahora que se saved una matriz, puede iterar sobre ella para verificar si ProfiliD existe o no. Si existe, empalme/elimine el objeto de la matriz.

     saved.forEach((o, index) => { if (o.ProfiliD === myobj.ProfiliD) { saved.splice(index, 1); } });
  • Ahora inserte el newObj en la matriz guardada.

     saved.push(newObj);
  • Paso final, configure esta matriz saved actualizada en localStorage.

     localStorage.setItem('CollapseState',JSON.stringify(saved));
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