Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!