ECMAScript 2015 (oder ES6) kamen mit einem in dem Objekt reflektiert. Es ist möglich, Objekteigenschaft zu löschen, indem Reflect.deleteProperty()
Funktion mit Zielobjekt und Eigenschaftsschlüssel als Parameter aufrufen:
Reflect.deleteProperty(myJSONObject, 'regex');
das ist äquivalent zu:
delete myJSONObject['regex'];
Aber wenn die Eigenschaft des Objekts ist es nicht konfigurierbar
let obj = Object.freeze({ prop: "value" });
let success = Reflect.deleteProperty(obj, "prop");
console.log(success); // false
console.log(obj.prop); // value
Object.freeze()
macht alle Eigenschaften des Objekts nicht: weder mit deleteProperty Funktion noch löschen Operator kann nicht gelöscht werden konfigurierbar (neben anderen Dingen). Die Funktion deleteProperty (sowie der Löschoperator) gibt false zurück, wenn versucht wird, eine ihrer Eigenschaften zu löschen. Wenn die Eigenschaft konfigurierbar ist, wird auch dann true zurückgegeben, wenn die Eigenschaft nicht existiert.
Der Unterschied zwischen Lösch- und deleteProperty wird bei der Verwendung von Strict-Modus:
"use strict";
let obj = Object.freeze({ prop: "value" });
Reflect.deleteProperty(obj, "prop"); // false
delete obj["prop"];
// TypeError: property "prop" is non-configurable and can't be deleted
'löschen
Duplikat von [Wie entferne ich Objekte aus einem assoziativen JavaScript-Array?] (Http://stackoverflow.com/questions/346021/how-do-i-remove-objects-from-a-javascript-associative-array) –