Bewahrt der Javascript-Filter die Ordnung?

Lesezeit: 1 Minute

Benutzer-Avatar
Ford Präfekt

Ich habe mir die Dokumentation angesehen und beim Betrachten von Beispielen sieht es so aus, als würde der Filter die Reihenfolge der ursprünglichen Liste beibehalten (obwohl er eine neue zurückgibt). Kann ich mich darauf verlassen?

Ecmascript-Spez

MDN

Keine dieser Referenzen bewahrt die Reihenfolge. Soll ich einfach davon ausgehen, dass ich mich nicht auf die erhaltene Ordnung verlassen kann?

  • filter calls callbackfn once for each element in the array, in **ascending order**

    – XCS

    26. September 2016 um 20:54 Uhr

  • Die ECMAScript-Spezifikation, die Sie verlinkt haben, beschreibt sehr deutlich eine erhaltene Reihenfolge.

    Benutzer1106925

    26. September 2016 um 20:54 Uhr

  • @squint Nachdem ich Oriols Antwort gelesen habe, glaube ich nicht, dass es aus der Spezifikation sofort ersichtlich ist.

    – Ford-Präfekt

    26. September 2016 um 21:23 Uhr


Benutzer-Avatar
Oriol

Ja. Von dem spez,

  • Lassen ausgewählt das Ergebnis des Aufrufs der sein [[Call]]interne Methode von Rückruffn mit T als die this-Wert- und Argumentliste enthält kWert, kund Ö.
  • Wenn NachBoolesch(ausgewählt) ist Stimmtdann

    • Ruf den [[DefineOwnProperty]]interne Methode von EIN mit Argumenten ToString(zu), Eigenschaftsdeskriptor {[[Value]]: kWert, [[Writable]]: Stimmt, [[Enumerable]]: Stimmt, [[Configurable]]: Stimmt}, und FALSCH.
    • Zunahme zu um 1.

Die Elemente im zurückgegebenen Array haben also dieselbe Reihenfolge wie im Original.

Benutzer-Avatar
Richard

Ja das .filter() -Methode gibt ein neues Array ohne die gefilterten Elemente in derselben Reihenfolge wie ursprünglich zurück.

Die Reihenfolge der Elemente ist eines der Hauptmerkmale eines Arrays.

1047920cookie-checkBewahrt der Javascript-Filter die Ordnung?

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

Privacy policy