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

151
Vistas
reemplazar matriz con nueva matriz en objeto javascript

Tengo un objeto con dos matrices que contienen correos electrónicos y números alternativos. Estoy tratando de eliminar elementos de la matriz y establecer la nueva matriz en el lugar de los anteriores.

 const handleDelteMail = (evt) => { let tempData: any = []; tempData = JSON.parse(JSON.stringify(userData.emailAlt)); let filtered = tempData.filter((mail) => mail._id !== evt.currentTarget.value); console.log(filtered); setUserData({ ...userData, [userData.emailAlt]: filtered }); };

filtered contiene la nueva matriz correcta que quiero poner en userData, pero no tuve suerte.

así es como se ve mi objeto userData:

 const initialValues = { dateCreated: Date.now(), firstName: "", lastName: "", countryCode: "", numberPrime: "", numberAlt: [], companyName: "", consultant: "", industry: "", whatsapp: false, acceptTerms: false, emailPrime: "", emailAlt: [], skype: "", userType: "", agent: "", comment: "", };

No sé lo que me estoy perdiendo o haciendo mal. Por favor ayuda.

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

0

  1. El filter ya devuelve una nueva matriz, por lo que no necesita hacer una copia de userData.emailAlt , solo itere sobre ella.

  2. Cuide su ortografía ( handleDelteMail probablemente debería ser handleDeleteMail ).

  3. Puede reconstruir el nuevo objeto asignando la nueva matriz a emailAlt .

 function handleDeleteMail(evt) { const { value } = evt.target; const filtered = userData.emailAt.filter(mail => { return mail._id !== value); }); setUserData({ ...userData, emailAlt: filtered }); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar la función get en el módulo lodash

Prueba este:

 const _ = require('lodash'); // install `lodash` first const { value } = evt.currentTarget; const filtered = userData.emailAt.filter(mail => { return mail._id !== value); }); _.set(userData, 'emailAtl', filtered)
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