Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the most efficient way to empty a plain object in javascript? [duplicate]

As stated Here, It seems that the most efficient way to empty an existing array (and NOT to allocate a new one) in javascript is to use:

array.length = 0;

Does the same operation work for plain objects? (aka "associative arrays" or "dictionaries") If not, what is the most efficient way to empty an existing javascript object?

I think that allocating a new one is not the best option, since it will push some extra work to the garbage collector, and will allocate some new memory on the heap, but I might be wrong.

I need a solution that works at least with Chrome and Firefox.

like image 833
Sebastien Avatar asked Mar 03 '13 19:03

Sebastien


1 Answers

The shortest way to do that is to create a new object. You'd end up garbage collecting all the properties anyway.

var foo = {
    a: 5,
    b: 4
};
foo = {};

You could also iterate over the properties and remove them individually:

for (var prop in foo) {
    if (foo.hasOwnProperty(prop)) {
        delete foo[prop];
    }
}

It's also worth pointing out, as a matter of verbiage, that JavaScript has objects with properties, not associative arrays.

like image 106
Dennis Avatar answered Oct 06 '22 00:10

Dennis