MENU
delete
You can 'delete' an object property.It has been known that 'delete' is a relatively slow operation (as of July 2017).
var iterationsTotal = 10000000; // 10 million
var o;
var t1 = Date.now(), t2;
for (let i = 0; i < iterationsTotal; i++) {
o = {a: 1, b: 2, c: 3, d: 4, e: 5};
delete o.a;
delete o.b;
delete o.c;
delete o.d;
delete o.e;
}
console.log((t2 = Date.now()) - t1);
for (let i = 0; i < iterationsTotal; i++) {
o = {a: 1, b: 2, c: 3, d: 4, e: 5};
o.a = o.b = o.c = o.d = o.e = undefined;
}
console.log(Date.now() - t2);var o = {a: 1, b: 2};
delete o.a;
console.log('a' in o);
console.log(JSON.stringify(o));
o.b = undefined;
console.log('b' in o);
console.log(JSON.stringify(o));6135
205
false
{"b":2}
true
{}
Be careful when you try to 'delete' an element from an array.
var a = [1, 2, 3];
delete a[1];
console.log(a);
a.splice(1, 1);
console.log(a);[1, undefined, 3]
[1, 3]
You can't delete a variable solely:
var a = 10;
delete a;
console.log(a);
a = undefined;
console.log(a);10
undefined