Angenommen, Sie haben ein Objekt, das wie folgt aussieht:
var Hogwarts = {
staff : [
'Argus Filch',
'Filius Flitwick',
'Gilderoy Lockhart',
'Minerva McGonagall',
'Poppy Pomfrey',
...
],
students : [
'Hannah Abbott',
'Katie Bell',
'Susan Bones',
'Terry Boot',
'Lavender Brown',
...
]
};
Löschung einer Objekteigenschaft
Wenn Sie die gesamte staff
Array, der richtige Weg, um dies zu tun, wäre, dies zu tun:
delete Hogwarts.staff;
Alternativ können Sie auch dies tun:
delete Hogwarts['staff'];
In ähnlicher Weise würde das Entfernen des gesamten Schüler-Arrays durch den Aufruf von delete Hogwarts.students;
o delete Hogwarts['students'];
.
Löschen eines Array-Index
Wenn Sie nun einen einzelnen Mitarbeiter oder Schüler entfernen möchten, ist das Verfahren etwas anders, da beide Eigenschaften selbst Arrays sind.
Wenn Sie den Index Ihres Mitarbeiters kennen, können Sie dies einfach tun:
Hogwarts.staff.splice(3, 1);
Wenn Sie den Index nicht kennen, müssen Sie auch eine Indexsuche durchführen:
Hogwarts.staff.splice(Hogwarts.staff.indexOf('Minerva McGonnagall') - 1, 1);
Nota
Technisch gesehen können Sie zwar delete
für ein Array zu verwenden, würde dazu führen, dass man falsche Ergebnisse erhält, wenn man zum Beispiel Hogwarts.staff.length
später. Mit anderen Worten, delete
würde das Element entfernen, aber es würde den Wert von length
Eigentum. Verwendung von delete
würde auch Ihre Indizierung durcheinander bringen.
Wenn Sie also Werte aus einem Objekt löschen, überlegen Sie immer zuerst, ob es sich um Objekteigenschaften oder um Array-Werte handelt, und wählen Sie je nach dem die geeignete Strategie.
Wenn Sie damit experimentieren möchten, können Sie Folgendes verwenden diese Fiedel als Ausgangspunkt.
0 Stimmen
Delete myObject.regex; // oder, delete myObject['regex']; // oder, var prop = "regex"; delete myObject[prop];