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

135
Views
¿Cómo combinar dos JSON anidados dados y devolver solo los valores comunes en otro JSON en javascript?

Por ejemplo, quería comparar debajo de 2 JSON y obtener el valor de retorno con un par de valores de clave JSON comunes.

 JSON1 = [{ "info" : { "name": "xyz" }, "add" : "london", "no" : 1234, "gender" : "male" }]

Otro JSON es :

 JSON2 = [{ "info" : { "name": "abc" }, "add" : "london", "no" : 2456 }]

Necesita el valor de retorno como JSON como se muestra a continuación con valores comunes, pero la diferencia debe estar vacía.

 json3 = [{ "info" : { "name": "" }, add : "london", no : "", gender : male }]
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Podría crear una función combineObjects() que combine objetos de entrada de forma recursiva.

Enumeraremos las claves de los objetos de entrada y luego devolveremos un valor vacío para cada propiedad si los valores no son los mismos para las dos entradas.

Si los valores son los mismos o faltan en cualquiera de los objetos, devolveremos el valor de la propiedad obj1 u obj2.

 const json1 = [{ "info" : { "name": "xyz" }, "add" : "london", "no" : 1234, "gender" : "male" }]; const json2 = [{ "info" : { "name": "abc"}, "add" : "london", "no" : 2456 }]; function combineObjects(obj1, obj2) { const result = {}; // Get all keys... let keys = [...new Set([...Object.keys(obj1), ...Object.keys(obj2)])]; for(let k of keys) { if (obj1[k] && obj2[k] && typeof(obj1[k]) === 'object') { result[k] = combineObjects(obj1[k], obj2[k]); } else if (obj1[k] === obj2[k]) { result[k] = obj1[k]; } else { result[k] = (obj1[k] && obj2[k]) ? '' : obj1[k] || obj2[k]; } } return result; } const result = combineObjects(json1, json2); console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js" integrity="sha512-Nw0Abk+Ywwk5FzYTxtB70/xJRiCI0S2ORbXI3VBlFpKJ44LM6cW2WxIIolyKEOxOuMI90GIfXdlZRJepu7cczA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

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!