JSFiddle - React, Tailwind, and code Playground
JavaScript
// use $.isEmptyObject or this
function isEmpty( o ) {
for ( var p in o ) {
if ( o.hasOwnProperty( p ) ) { return false; }
}
return true;
}
var compareObj = function(obj1, obj2) {
var ret = {},rett;
for(var i in obj2) {
rett = {};
if (typeof obj2[i] === 'object'){
rett = compareObj (obj1[i], obj2[i]) ;
if (!isEmpty(rett) ){
ret[i]= rett
}
}else{
if(!obj1 || !obj1.hasOwnProperty(i) || obj2[i] !== obj1[i]) {
ret[i] = obj2[i];
}
}
}
return ret;
};
var a = {
A:[{a:"a"},{b:["cc",0,"a",0]}],
B:{aa:"bbc"},
D:"Something",
E:"6"
};
var b = {
A:[{a:"a"},{b:["cc",9,"a",9]},{b:"3cb"}],
B:{aa:"bb"},
C:{gg:"ff"},
D:"Something2",
};
$("#x").append("<br>"+JSON.stringify(compareObj (a, b)));