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

125
Views
JS Object compare y obtenga solo diferencias

tengo 2 objetos

El único objeto es Original Data .

 const origin = { name: 'John', id: 'Doe', item: { drink: 'coffee', money: 0 } }

Y el otro objeto es Copied and Edited Data

 const copied = { name: 'Alex', id: 'Doe', item: { drink: 'water', money: 0 } }

Me gustaría compararlos y obtener solo diferencias.

 const out = compareObj(origin, copied); console.log(out) /* { name: 'Alex', item: { drink: 'water' } } */

¿Cómo puedo conseguir esto?

Gracias por adelantado.

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

0

Puede recorrer recursivamente el objeto y delete las propiedades no duplicadas del objeto de copy .

Y si existe una propiedad en el objeto original y no en la copy , agréguela al objeto de copy . La siguiente parte del código hace eso:

 if (!copy.hasOwnProperty(k)) { copy[k] = v; } 

 function compare(original, copy) { for (let [k, v] of Object.entries(original)) { if (typeof v === "object" && v !== null) { if (!copy.hasOwnProperty(k)) { copy[k] = v; } else { compare(v, copy?.[k]); } } else { if (Object.is(v, copy?.[k])) { delete copy?.[k]; } } } return copy; } const original = { name: "John", id: "Doe", item: { drink: "coffee", money: 0, honey: 24 } }, copy = { name: "Alex", id: "Doe", item: { drink: "water", money: 0 } }, diff = compare(original, JSON.parse(JSON.stringify(copy))); console.log(diff);

Nota : debe pasar un clon del objeto de copy a la función, ya que muta el objeto de copy pasado.

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!