删除密钥列表

时间:2015-01-01 21:12:34

标签: javascript underscore.js lodash

在Javascript中,我有一个对象,我希望删除多个键:

x = {"id":2,"user_id":1,"name":"document_name","description":"the  document","file_type":null,"file_id":null}
delete x.file_type
delete x.file_id

结果:

Object {id: 2, user_id: 1, name: "document_name", description: "the document"}

我更希望删除单个命令中的所有键,可能会传递一组键? 或者,使用某种类型的下划线/ lodash过滤器来实现相同的目标。

2 个答案:

答案 0 :(得分:4)

['file_type', 'file_id'].forEach(function (key) {
  delete x[key];  
});

演示:http://jsbin.com/vevotu/1/

答案 1 :(得分:1)

使用下划线,您可以使用_.omit排除不必要的密钥:

_.omit(x, 'file_type', 'file_id');

但请注意,omit会返回对象的副本。所以它与使用delete运算符不同。

查看下面的演示。



var x = {"id":2,"user_id":1,"name":"document_name","description":"the  document","file_type":null,"file_id":null};
var result = _.omit(x, 'file_type', 'file_id');

alert(JSON.stringify(result, null, 4));

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
&#13;
&#13;
&#13;