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

173
Visualizações
Cómo eliminar elementos del objeto de matrices

Uso un objeto de matrices y quiero eliminar un valor específico en 1 de las matrices.

 let medici= ["Person1","Person2", "Person3", "Person4", "Person5", "Person6" ]; let giorni = ["Lun", "Mar", "Mer","Gio","Ven"]; let presenti ={}; for (let giorno of giorni){ presenti[giorno] = medici; }

Yo obtengo:

 Gio: ["Person1", "Person2", "Person3", "Person4", "Person5", "Person6"], Lun: ["Person1", "Person2", "Person3", "Person4", "Person5", "Person6"], Mar: ["Person1", "Person2", "Person3", "Person4", "Person5", "Person6"], Mer: ["Person1", "Person2", "Person3", "Person4", "Person5", "Person6"], Ven: ["Person1", "Person2", "Person3", "Person4", "Person5", "Person6"]

Ahora quiero eliminar un valor específico en una matriz específica:

 giorno="Ven"; nome="Person1"; presenti[giorno].splice(presenti[giorno].indexOf(nome), 1);

¡Elimina el valor en todas las matrices! No solo en el "Ven" ... ¿Cómo puedo eliminar un solo elemento en una matriz específica que no afecte a las otras matrices del objeto?

Gracias

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

0

 const medici = ["Person1","Person2", "Person3", "Person4", "Person5", "Person6" ]; const gironi = ["Lun", "Mar", "Mer","Gio","Ven"]; const presenti = {}; for (const giorno of gironi) { presenti[giorno] = [...medici]; } presenti["Ven"].splice(presenti["Ven"].indexOf("Person1"), 1); console.log(presenti);

Su problema tiene que ver con la referencia de memoria, cuando iguala dos variables, no está creando otro objeto idéntico, sino copiando la referencia del objeto de una variable a otra, por lo que si modifica X , cambia Y , para corregir puede crear otro Array usando el operador de propagación [...medici]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

about 4 years ago · Juan Pablo Isaza Relatório

0

Cuando construye su objeto, todas las matrices tienen la misma referencia, por lo que deberá slice los medici en cada valor de objeto. Eche un vistazo a Copiar matriz por valor

Ahora puedes usar el método.

 let medici= ["Person1","Person2", "Person3", "Person4", "Person5", "Person6" ]; let giorni = ["Lun", "Mar", "Mer","Gio","Ven"]; let presenti ={}; for (let giorno of giorni){ presenti[giorno] = medici.slice(); } let giorno="Ven"; let nome="Person1"; presenti[giorno].splice(presenti[giorno].indexOf(nome), 1); console.log(presenti)

about 4 years ago · Juan Pablo Isaza Relatório

0

 let medici= ["Person1","Person2", "Person3", "Person4", "Person5", "Person6" ]; let giorni = ["Lun", "Mar", "Mer","Gio","Ven"]; let presenti ={}; for (let giorno of giorni){ presenti[giorno] = medici; } giorno="Ven"; nome="Person1"; const filteredData = presenti[giorno].filter((p)=>p!==nome) presenti[giorno] = filteredData console.log(presenti)

Lo hace porque en JavaScript Array y Objects se conocen como tipos de referencia. [Aprende más aquí]. 1

Para solucionar tu problema puedes hacer esto:

giorno="Ven";

nome="Person1";

Al principio, filtre Person1 de la matriz. const filteredData = presenti[giorno].filter((p)=>p!==nome)

Luego reemplace el objeto Ven con los datos filteredData actualizados

presenti[giorno] = filteredData

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