Revision adf63c16-e3bd-40b0-acbf-37b8d67f252b - Stack Overflow

I have same scenario in my project and achieved using following method.

It works with all data types, few mentioned above doesn't work with date and empty arrays . 

**removeEmptyKeysFromObject.js**

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

 removeEmptyKeysFromObject(obj) {
 Object.keys(obj).forEach(key => {
 if (Object.prototype.toString.call(obj[key])  ===  '[object Date]' && obj[key].toString().length === 0) {
 delete obj[key];
 } else if (obj[key] && typeof obj[key] === 'object') {
 this.removeEmptyKeysFromObject(obj[key]);
 } else if (obj[key] == null || obj[key] === "") {
 delete obj[key];
 }

 if (obj[key] && typeof obj[key] === 'object' && Object.keys(obj[key]).length === 0 && Object.prototype.toString.call(obj[key])  !==  '[object Date]') {
 delete obj[key];
 }

 });
 return obj;
 }

<!-- end snippet -->

pass any object to this function removeEmptyKeysFromObject(<any complex object>)

AltStyle によって変換されたページ (->オリジナル) /