在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过滤器来实现相同的目标。
答案 0 :(得分:4)
['file_type', 'file_id'].forEach(function (key) {
delete x[key];
});
答案 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;