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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With