从 javascript 对象中删除不需要的属性

新手上路,请多包涵

我有一个类似下面的 javascript 对象,它有几个字段和数组以及数组中的数组。我只对非垃圾字段感兴趣,并想从对象中删除所有垃圾属性。我怎样才能使用 lodash 做到这一点?

我可以通过使用 delete 来做到这一点,但我不想这样做,因为该列表很大,我不想每次新的垃圾属性出现时都更改我的代码以写入删除添加到我的对象。

 {
 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'}
}

原文由 Ajay Srikanth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 667
2 个回答

您可以使用 lodash.pick() 来创建仅包含所请求键的对象。例如:

 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']);

城市现在应该拥有所有有用的数据,没有垃圾。

原文由 Nicolas Budig 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用任一删除运算符删除特定属性

delete data.JunkOne;

或者使用 object.assign 来选择特定的属性

var a = Object.assign({}, { counties: data.counties});

编辑:

这样做是lodash的方式

var a = _.omit(data, ['JunkOne']);

或者

var a = _.pick(data, ['counties']);

原文由 binariedMe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题