Ich habe ein 2D-Array:
%Vor%Ich möchte eine ganze Spalte dieses Arrays löschen (d. h. jedes dritte Element in jedem Array löschen).
Es gibt Lösungen hier und hier , aber keiner von ihnen ist in Javascript, also ich habe Probleme, die Situationen zu beschreiben.
Was ist der beste Weg, dieses Problem anzugehen? Ich möchte nicht .splice () verwenden, weil ich in einigen Fällen mehrere Spalten löschen werde, und die .splice () -Methode wird die Länge des Arrays ändern, so dass ich am Ende außerhalb der Grenzen zugreifen kann.
Danke!
Versuchen Sie es mit slice
. Änderungen an Ihrem ursprünglichen array
Iteriere durch das Array und spleiere jedes Sub-Array:
%Vor%JSFiddle .
Bearbeiten :
Ich sehe, dass Sie nicht wollen, Spleiß tun, um außerhalb der Grenzen Probleme und Array-Länge zu ändern.
Also:
1.Sie können überprüfen, ob Sie außerhalb der Grenzen sind und das Segment überspringen.
2.Sie können ein Array von Indizes erstellen, die Sie löschen möchten, und einfach neue Arrays aus den Indizes erstellen, die nicht in diesem Array erscheinen (anstatt zu löschen, erstellen Sie neue Arrays mit der entgegengesetzten Bedingung).
In etwa so:
%Vor% Verwenden Sie die Funktion map
und splice
für Ihre Lösung. wie das
Verwenden Sie nicht delete
, um Elemente aus einem JavaScript-Array zu löschen. Der Grund dafür ist, dass delete das Element wirft, aber die interne Längenvariable nicht aktualisiert.
Beispiel
%Vor% benutze splice
dies setzt die richtige Länge und löscht das Element des Arrays.
splice
ist cool. Es ändert die Größe des Arrays, während es Dinge entfernt, so dass Sie nicht mit Nullen enden. Also mit Spleißen müssen Sie nur durch jede Zeile iterieren und das richtige Element entfernen.
Tags und Links javascript jquery multidimensional-array