Je suis nouveau en JavaScript et j'essaie de trouver la différence entre deux objets JSON. La structure de l'objet JSON et ses données sont affichées ci-dessous. J'ai trouvé un code en ligne qui fonctionne pour un objet JSON normal mais comme celui-ci contient également un tableau de données, je pense que ça ne fonctionne pas pour ça. J'ai essayé différentes choses mais sans résultat. Si vous avez des conseils à ce sujet, ce serait grandement apprécié. Merci.
Objet JSON 1 (obj1) : {id: 1, details: Array[2], profession: "Business"}
{
"id": "1",
"details": [{
"name": "Peter",
"address": "Arizona",
"phone": 9900998899
},
{
"name": "Jam",
"address": "Kentucky",
"phone": 56034033343
}
],
"profession": "Business"
}
Objet JSON 2 (obj2) : {id: 2, details: Array[2], profession: "Business"}
{
"id": "2",
"details": [{
"name": "Peter",
"address": "Arizona",
"phone": 9900998899
},
{
"name": "David",
"address": "Boston",
"phone": 434323434
}
],
"profession": "Business"
}
Solution:
compare(obj1, obj2) {
var result = {};
for (key in obj1) {
if (obj2[key] != obj1[key]) {
result[key] = obj2[key];
}
if (typeof obj2[key] === '[object Array]' && typeof obj1[key] === '[object Array]') {
result[key] = compare(obj1[key], obj2[key]);
}
if (typeof obj2[key] === 'object' && typeof obj1[key] === 'object') {
result[key] = compare(obj1[key], obj2[key]);
}
}
console.log(result);
}
Résultat:
Object {0: undefined, 1: undefined}
Object {id: "2", pingedAddresses: undefined, type: "Business"}
Attendu:
{
"id": "2",
"details": [{
"name": "David",
"address": "Boston",
"phone": 434323434
}]
}