In JS, für ein Array, das aus JSON-Objekten besteht, zum Beispiel:
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
Wenn wir das zweite JSON-Objekt löschen wollen, was sollen wir tun? Tatsächlich ist die Methode genau dieselbe wie beim Arbeiten mit einem Array.
Am Anfang habe ich versucht, dendelete-Operator zu verwenden, aber als ich die Array-Länge überprüfte, stellte ich fest, dass diese Methode das Element nicht vollständig löscht; stattdessen löscht sie seinen Wert und behält den Platz bei.
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length //输出为 3
delete test[1];
test.length //输出仍为 3
Wenn man den delete-Operator nachschlägt, wissen wir, dass er nur diesen Wert auf undefined setzt und die Array-Länge nicht beeinflusst, d. h. er verwandelt es in ein sparse Array (Abschnitt 7.5 von „JavaScript: The Definitive Guide“).
Wenn Sie das wissen, denken Sie vielleicht daran, jedes Element nach der Löschstelle um eine Einheit nach vorne zu verschieben, um dieses Element vollständig zu entfernen, aber in den JS-Methoden finden wir einen einfacheren Ansatz:splice()-Methode
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length //输出为 3
test.splice(1, 1);
test.length //输出为 2
Nach dem Löschen wird test.length zu 2, was genau das gewünschte Ergebnis ist.
Ursprüngliche URL: https://blog.csdn.net/WI_232995/article/details/77776433