Search code examples
javascriptlodash

delete unwanted properties from the javascript object


I have a javascript object like the one below with several fields and arrays and arrays within arrays. I'm only interested only in non-junk fields and wanted to remove all the junk properties from the objects. How can I do that using lodash?

I can do that by using delete, but I don't want to do that because that list is huge and I don't want to keep changing my code to write a delete every time a new junk property is added to my object.

{
 state: 'New York',
 country: 'usa',
 counties : [['washington','DC'],'Long Island',['New','Jersey']], 
 city : 'Manhattan',
 zip: '43543545',
 JunkOne : ['3453454','45345','45345'],
 JunkTwo: '5454545',
 JunkThree: {adc:'4545',vdfd:'45345'} 
}

Solution

  • You can use lodash.pick() to create an object with only the requested keys. For example:

    var city = {
      state: 'New York',
      country: 'usa',
      counties : [['washington','DC'],'Long Island',['New','Jersey']], 
      city : 'Manhattan',
      zip: '43543545',
      JunkOne : ['3453454','45345','45345'],
      JunkTwo: '5454545',
      JunkThree: {adc:'4545',vdfd:'45345'}
    }
    var lodash = require('lodash');
    city = lodash.pick(city, ['state', 'country', 'counties','city','zip']);
    

    City now should have all the useful data, and none of the junk.