Wie kann ich die Eigenschaften eines JavaScript-Objekts löschen/unset? [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
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


Benutzer-Avatar
Robert Pitt

Einfach verwenden deleteaber seien Sie sich bewusst, dass Sie vollständig lesen sollten, was die Auswirkungen dieser Verwendung sind:

 delete object.index; //true
 object.index; //undefined

Aber wenn ich so verwenden würde:

var x = 1; //1
delete x; //false
x; //1

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

var a="b";
delete a; //false
delete window.a; //true
delete this.a; //true

Löschen verstehen

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.

    – TJ Crowder

    3. August 2012 um 16:07 Uhr


  • @RobertPitt, delete hat keine Auswirkung auf Variablen, die von “var” erstellt wurden, daher ist Ihr 3. Beispiel nicht korrekt. sehen [developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

    – Peihui

    Apr 4, 2015 at 17:32


  • 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

user avatar
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

1251420cookie-checkWie kann ich die Eigenschaften eines JavaScript-Objekts löschen/unset? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy