如果我有一个对象:
var myobj={name: 'Some Value',
id: 'my id',
address: 'my address'
...}
myobj
已通过myobj[custom_attribute]=SOME_VALUE
我想清理这个对象有空属性,那是myobj = {},怎么做? (我不想使用for循环逐个清理属性)
答案 0 :(得分:4)
有什么问题
myobj = {};
或
myobj = new Object();
答案 1 :(得分:4)
将myobj设置为空对象
myobj = {};
答案 2 :(得分:4)
所以你想分配myobj = {},让它变空?请原谅我,如果我错误地读了你的问题,但在我看来你想做的事情
myobj={};
答案 3 :(得分:2)
最快/最简单的方法是:
myobj = {};
答案 4 :(得分:0)
如果您不是通过引用编辑对象,则其他答案很好。但是,如果将对象传递给函数并且希望原始对象也受到影响,则可以使用此函数:
function emptyObject(objRef) {
for(var key in objRef) {
if(objRef.hasOwnProperty(key)) {
delete objRef[key];
}
}
}
这维护了原始对象引用,适用于管理作为参数提供的对象的插件创作。两个简单的例子将说明这与简单地将对象设置为{}
的区别EX 1:
function setEmptyObject(obj) {
obj = {};
}
var a = {"name":"Tom", "site":"http://mymusi.cc"}
setEmptyObject(a);
console.log(a); //{"name":"Tom", "site":"http://mymusi.cc"}
EX 2使用emptyObject()替代(上面定义的函数):
var a = {"name":"Tom", "site":"http://mymusi.cc"}
emptyObject(a);
console.log(a); //{}
答案 5 :(得分:0)
一行:
Object.keys(obj).forEach( k => delete obj[k])