Wie kann ich die Eigenschaften eines JavaScript-Objekts löschen/unset? [duplicate]
Lesezeit: 3 Minuten
Ali
Mögliche Duplikate:
Wie kann ich eine JavaScript-Variable zurücksetzen?
Wie entferne ich eine Eigenschaft von einem JavaScript-Objekt?
Ich suche nach einer Möglichkeit, die Eigenschaften eines JavaScript-Objekts zu entfernen / zurückzusetzen, damit sie nicht mehr angezeigt werden, wenn ich das Objekt durchlaufe for (var i in myObject). Wie kann dies geschehen?
Haben Sie versucht, selbst zu recherchieren? Als ich gegoogelt habe “Javascript Objekteigenschaften löschen”das war das erste Ergebnis: So entfernen Sie eine Eigenschaft aus einem Javascript-Objekt
– Benutzer113716
26. Juni 2011 um 16:29 Uhr
Wie wäre es mit der Einhaltung der Regeln der Website? Aus der FAQ: „Bitte sehen Sie sich um, ob Ihre Frage bereits gestellt (und vielleicht sogar beantwortet!) wurde, bevor Sie sie stellen.“
– Benutzer113716
26. Juni 2011 um 18:13 Uhr
Robert Pitt
Einfach verwenden deleteaber seien Sie sich bewusst, dass Sie vollständig lesen sollten, was die Auswirkungen dieser Verwendung sind:
Aber wenn Sie Variablen im globalen Namensraum löschen möchten, können Sie sein globales Objekt wie verwenden windowoder verwenden this im äußersten Bereich, dh
Eine weitere Tatsache ist, dass die Verwendung von delete auf einem Array den Index nicht entfernt, sondern nur den Wert auf undefiniert setzt, was bedeutet, dass Sie in bestimmten Kontrollstrukturen wie for-Schleifen immer noch über diese Entität iterieren. Wenn es um Arrays geht, sollten Sie verwenden splice Dies ist ein Prototyp des Array-Objekts.
Beispiel-Array:
var myCars = new Array();
myCars[0] = "Saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";
Wenn ich machen sollte:
delete myCars[1];
Das resultierende Array wäre:
["Saab", undefined, "BMW"]
Aber mit Spleiß wie
myCars.splice(1,1);
würde ergeben:
["Saab", "BMW"]
tl;dr können wir Fenster löschen[“myVar”] oder nicht?
– mplungjan
26. Juni 2011 um 16:35 Uhr
Die einfache Antwort ist ja, du kannst, du kannst nicht: var x = 1; und dann delete window.x;
– Robert Pitt
26. Juni 2011 um 17:13 Uhr
“Sie können sein globales Objekt wie Fenster verwenden oder dies im äußersten Bereich verwenden, dh” und “Die einfache Antwort ist ja, Sie können, Sie können nicht: var x = 1; und dann window.x löschen; “ Nein, das kannst du nicht. Wenn eine globale mit deklariert wird vares lässt sich nicht löschen, auch nicht mit delete window.varname. Beispiel: jsbin.com/ojuyig Während, wenn Sie nicht verwenden var (Wenn Sie nur die globale erstellen, indem Sie ihr zuweisen, z. B. window.varname = 42), kannst du löschen. Aber var erstellt ein Umweltbindung auf dem globalen Objekt (windowin Browsern), und diese können nicht gelöscht werden.
A “bit” late, but in case somebody else finds this answer: I found RobertPitt’s statement that “delete” on an array element doesn’t remove the index to be wrong. delete does remove the index — it doesn’t show up in “for-in” nor in “index-in-array” anymore. The array has a “hole” at that index afterwards. Actually, splice is the one that doesn’t delete the index because it will re-number subsequent elements to fill the hole (unless you’re splicing away the last elements of the array).
– Martin Geisse
Jan 3, 2016 at 11:58
mplungjan
To blank it:
myObject["myVar"]=Null;
Es zu entfernen:
delete myObject["myVar"]
wie Sie in doppelten Antworten sehen können
myObject["myVar"]=null;wird den Index nicht entfernen, er setzt nur den Wert auf null, er existiert noch!
– Robert Pitt
26. Juni 2011 um 16:26 Uhr
12514200cookie-checkWie kann ich die Eigenschaften eines JavaScript-Objekts löschen/unset? [duplicate]yes
Haben Sie versucht, selbst zu recherchieren? Als ich gegoogelt habe “Javascript Objekteigenschaften löschen”das war das erste Ergebnis: So entfernen Sie eine Eigenschaft aus einem Javascript-Objekt
– Benutzer113716
26. Juni 2011 um 16:29 Uhr
Wie wäre es mit der Einhaltung der Regeln der Website? Aus der FAQ: „Bitte sehen Sie sich um, ob Ihre Frage bereits gestellt (und vielleicht sogar beantwortet!) wurde, bevor Sie sie stellen.“
– Benutzer113716
26. Juni 2011 um 18:13 Uhr