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

149
Vistas
Javascript: la variable reasignada está siendo mutada

¿Alguna idea de por qué mi asignación de variables está siendo mutada? Esto parece algo simple, pero no estoy seguro de lo que está pasando.

A continuación, se pasa un objeto de datos a la función pullChecklist como accesorio. Quiero tomar estos datos, crear una copia ( newPage ), cambiar las identificaciones en esa copia y luego guardar la copia en el estado.

Sin embargo, cada vez que intento cambiar las identificaciones en la copia newPage , las identificaciones también cambian en la page . Esto lo confirman los 3 registros de la consola.

Si elimino la declaración if por completo y solo dejo los registros de la consola Asignación original y Original Assignment Original Assignment 2 , los datos son exactamente como cuando se envían como apoyo. Agregar la instrucción if muta todos los registros de la consola a la versión con identificadores actualizados.

 const pullChecklist = (page) => { console.log('Original Assignment', page.components[0].blocks) let newPage = page if (newPage.components[0].blocks) { newPage.components[0].blocks.map((block) => { if (block.type === 'checklist') { let newTest = uuidv4() block.id = newTest for (const c in block.data) { let newId = uuidv4() block.data[c].id = newId } console.log('Reformatted', block); } }); } console.log('Original Assignment 2', page.components[0].blocks); };

¿Por qué se mutan los datos de la page ? ¡Gracias!

EDITAR:

Como lo señala @Vlaz a continuación, let newPage = page no copia el objeto.

Usé: obj = JSON.parse(JSON.stringify(o)); para copiar correctamente el objeto.

about 4 years ago · Juan Pablo Isaza
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