Skip to main content
Stack Overflow
  1. About
  2. For Teams

Return to Answer

deleted 56 characters in body
Source Link
andsilver
  • 6k
  • 3
  • 22
  • 50

The below recursive function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // {}
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // {data:{b: 1}}
const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // {}
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // {data:{b: 1}}
const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

The below recursive function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // {}
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // {data:{b: 1}}
const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

deleted 56 characters in body
Source Link
andsilver
  • 6k
  • 3
  • 22
  • 50

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // expect null{}
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // expect {data:{b: 1}}
const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // expect null
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // expect {data:{b: 1}}

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // {}
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // {data:{b: 1}}
const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

deleted 56 characters in body
Source Link
andsilver
  • 6k
  • 3
  • 22
  • 50

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 const keys = Object.keys(obj);
 keys.forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // expect null
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // expect {data:{b: 1}}

Try to use this function:

function removeEmpty(obj) {
 const keys = Object.keys(obj);
 keys.forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
removeEmpty(test)

function removeEmpty(obj) {
 const keys = Object.keys(obj);
 keys.forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // expect null
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // expect {data:{b: 1}}

Try to use this function:

function removeEmpty(obj) {
 const keys = Object.keys(obj);
 keys.forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
removeEmpty(test)

The below function will remove all empty objects.

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}

Working Demo

function removeEmpty(obj) {
 Object.keys(obj).forEach(k => {
 if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
 delete obj[k];
 }
 });
 if (!Object.keys(obj).length) {
 return null;
 }
}
const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // expect null
const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // expect {data:{b: 1}}

added 695 characters in body
Source Link
andsilver
  • 6k
  • 3
  • 22
  • 50
Loading
Source Link
andsilver
  • 6k
  • 3
  • 22
  • 50
Loading
lang-js

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