Comment supprimer en profondeur les valeurs fausses et les objets vides d'un objet à l'aide de lodash


Cap Barracudas

Comment supprimer en profondeur toutes les valeurs falsey et les objets vides à l'aide de lodash ?

fe je veux mon objet :

{ a:undefined, b:2, c:4, d:undefined , e:{ f:{} , g:null } }

devenir:

{ b:2, c:4 };
charly1212

var test = {
  a: undefined,
  b: 2,
  c: 4,
  d: undefined,
  e: {
    f: {},
    g: null
  }
};

function clean(obj) {
  for (var propName in obj) {
    if (_.isObject(obj[propName])) {
      clean(obj[propName]);
    }
    if (obj[propName] === null || obj[propName] === undefined || _.isObject(obj[propName]) && _.isEmpty(obj[propName])) {
      delete obj[propName];
    }
  }
}

clean(test);
console.log(test);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js"></script>

Articles connexes