繁体   English   中英

新手:如何清理javascript中的对象?

[英]newbie: How to clean up an object in javascript?

如果我有一个对象:

var myobj={name: 'Some Value',
           id: 'my id',
           address: 'my address'
           ...}

myobj已通过myobj[custom_attribute]=SOME_VALUE动态扩展

我想清理该对象以使其具有空属性,即myobj = {},该怎么做? (我不想使用for循环一一清理属性)

怎么了

myobj = {};

要么

myobj = new Object();

将myobj设置为空对象,

myobj = {};

所以您想分配myobj = {},使其为空? 如果我读错了你的问题,请原谅我,但是在我看来,你想做

myobj={};

最快/最简单的方法是:

myobj = {};

如果您不按引用编辑对象,则其他答案也可以。 但是,如果将对象传递给函数,并且希望原始对象也受到影响,则可以使用此函数:

function emptyObject(objRef) {
    for(var key in objRef) {
        if(objRef.hasOwnProperty(key)) {
            delete objRef[key];
        }
    }
}

这将保留原始对象引用,并且对于在管理作为参数提供的对象的插件创作很有用。 两个简单的示例将说明这与简单地将对象设置为等于{}的区别。

例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); //{}

一条线:

Object.keys(obj).forEach( k => delete obj[k])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM