Skip to content Skip to sidebar Skip to footer

Remove Undefined Properties From Object

I would like to recursively clean any fields which are undefined, or have an empty object as parent like this following: Example: { 'a': { 'b': { 'c': undefined, }

Solution 1:

functionfilter(obj) {
  for (var key in obj) {
    if (obj[key] === undefined) {
      delete obj[key];
      continue;
    }
    if (obj[key] && typeof obj[key] === "object") {
      filter(obj[key]);
      if (!Object.keys(obj[key]).length) {
        delete obj[key];
      }
    }
  }
  return obj;
}

var data = {
  "a": {
    "b": {
      "c": undefined,
    }
  },
  "d": undefined,
  "e": {
    "f": undefined,
  },
  "g": {
    "h": 'I',
    "j": undefined,
  },
  "k": "L",
  "m": {
    "n": {
      "o": {
        "z": undefined,
      }
    },
    "p": 'toto'
  }
};

console.log(filter(data));

Simply delete these keys and iterate recursively.

Solution 2:

functioncleanArray(actual) {
  var newArray = newObject();
 newArray=JSON.parse(JSON.stringify(actual));
  return newArray;
}
var obj={
  "a": {
    "b": {
      "c": undefined,
    }
  },
  "d": undefined,
  "e": {
    f: undefined,
  },
  "g": {
     "h": 'I',
     "j": undefined,
  },
  "k": "L",
  "m": {
     "n": {
       "o": {
         "z": undefined,
       }
     },
    "p": 'toto'
   }
};
console.log(cleanArray(obj));

Post a Comment for "Remove Undefined Properties From Object"