I am try to remove all blank object and array object subsequently from my json object using lodash in angular2 but not parse properly in object.
My Json Object:
{
"personal": {
"strenths": {},
"books": [{},{},{"Perority1": "Test","level": ""},{"Perority2": "","level": ""},{"courses": [{},{},{}]}]
},
"eduction": [{},{},[{}]]
};
Try to remove using method
clean(obj) {
console.log("Enter in a Clean() Method::::");
Object.keys(obj).forEach(key => {
if ($.isArray(obj[key])) {
obj[key] = $.remove(obj[key], function(n) {
if ($.isObject(n) && (n === null || n === undefined || $.isEmpty(n))) {
return false;
} else {
return true;
}
});
console.log("After Change Array:::::" + JSON.stringify(obj[key]));
if (obj[key] === null || obj[key] === undefined || $.isEmpty(obj[key])) {
delete obj[key];
} else {
this.clean(obj[key]);
}
} else if ($.isObject(obj[key])) {
if (obj[key] === null || obj[key] === undefined || $.isEmpty(obj[key])) {
delete obj[key];
} else {
this.clean(obj[key]);
}
}
});
return obj;
}
My Output:
{"personal":{"books":[{"Perority1":"Test","level":""},{"Perority2":"","level":""},{}]},"eduction":[null]}
Expected Output:
{"personal":{"books":[{"Perority1":"Test","level":""},{"Perority2":"","level":""}]}}