删除键列表
Deleting a list of keys
在 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"}
我更愿意在单个命令中删除所有键,也许传递一组键?
或者,使用某种类型的 underscore/lodash 过滤器来实现相同的目标。
['file_type', 'file_id'].forEach(function (key) {
delete x[key];
});
使用 Underscore,您可以使用 _.omit
来排除不必要的键:
_.omit(x, 'file_type', 'file_id');
但是请注意,omit
returns 对象的 copy。所以它与使用 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>
在 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"}
我更愿意在单个命令中删除所有键,也许传递一组键?
或者,使用某种类型的 underscore/lodash 过滤器来实现相同的目标。
['file_type', 'file_id'].forEach(function (key) {
delete x[key];
});
使用 Underscore,您可以使用 _.omit
来排除不必要的键:
_.omit(x, 'file_type', 'file_id');
但是请注意,omit
returns 对象的 copy。所以它与使用 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>