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

114
Views
Intercambiar valores de objeto por pocas propiedades en javascript

objeto actual

 const obj = { k1: v1, k2: v2, x1: v3, x2: v4, y: { z1: v5, z2: v6 } }

objeto esperado

 const obj = { k1: v2, k2: v1, x1: v4, x2: v3, y: { z1: v6, z2: v5 } }

Probé el método de intercambio individual para cada tecla y también probé debajo de la forma de asignación de objetos

 const obj = { k1: 'v1', k2: 'v2', x1: 'v3', x2: 'v4', y: { z1: 'v5', z2: 'v6' } } Object.assign(obj, { k1: obj.k2, k2: obj.k1, x1: obj.x2, x2: obj.x1, y: { z1: obj.y.z2, z2: obj.y.z1, } }); Object.keys(obj).forEach( (k) => obj[k] === null || (obj[k] === undefined && delete obj[k]) ); console.log(obj)

en algunos casos, una vez que se ejecuta la asignación de objetos, aparecerá undefined para la tecla x1 o x2 porque v3 o v4 no son obligatorios. así que después de convertir tratando de eliminar las claves indefinidas del objeto

Esperando una solución optimizada y mejor para ello.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Su solución fue acceder a claves indefinidas de obj , como obj.k4 y obj.k3 , y también estaban asignando claves incorrectas k3 y k4 .

Su solución corregida

 const obj = { k1: 'v1', k2: 'v2', x1: 'v3', x2: 'v4', y: { z1: 'v5', z2: 'v6' } }; Object.assign(obj, { k1: obj.k2, k2: obj.k1, x1: obj.x2, x2: obj.x1, y: { z1: obj.y.z2, z2: obj.y.z1, } }); console.log(obj);

También puede hacer uso del operador de propagación para lograr lo mismo.

 let obj = { k1: 'v1', k2: 'v2', x1: 'v3', x2: 'v4', y: { z1: 'v5', z2: 'v6' } }; obj = {...obj, ...{ k1: obj.k2, k2: obj.k1, x1: obj.x2, x2: obj.x1, y: { z1: obj.y.z2, z2: obj.y.z1, } }} console.log(obj);

about 4 years ago · Juan Pablo Isaza Report

0

Puede escribir un método para eliminar lo indefinido:

 const clean = o => JSON.parse(JSON.stringify(o)) const obj = { k1: 'v1', k2: 'v2', x1: 'v3', x2: 'v4', y: { z1: 'v5', z2: 'v6', }, } Object.assign(obj, { k1: obj.k2, k2: obj.k1, k3: obj.k4, k4: obj.k3, y: { z1: obj.v6, z2: obj.v5, }, }) console.log('obj:', obj) console.log('clean object:', clean(obj))

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