Heim  >  Artikel  >  Web-Frontend  >  Warum gibt Array.prototype.push die Länge und nicht das angehängte Element zurück?

Warum gibt Array.prototype.push die Länge und nicht das angehängte Element zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-22 10:09:30698Durchsuche

Why Does Array.prototype.push Return the Length and Not the Appended Item?

Der seltsame Fall von Array.prototype.push: Warum es Länge anstelle von etwas Bequemerem zurückgibt

Array.prototype.push ist ein JavaScript-Methode, die ein Array um ein oder mehrere Elemente erweitert. Im Gegensatz zu seinen intuitiveren Gegenstücken, die das neu hinzugefügte Element oder das geänderte Array selbst zurückgeben, gibt push seltsamerweise die neue Länge des Arrays zurück. Dieses unkonventionelle Verhalten hat Fragen zu den Designentscheidungen aufgeworfen, die zu seiner aktuellen Umsetzung geführt haben.

Historischer Kontext

Um die Gründe für diese Designentscheidung aufzudecken, befassen wir uns mit der Geschichte von Push. Wie der Kommunikationshub von TC39 berichtet, debütierte Push 1997 in JavaScript 1.2 (Netscape 4), inspiriert von den Array-Manipulationsfunktionen von Perl. Zunächst gab push das zuletzt gepushte Element zurück und befolgte dabei die Konventionen von Perl 4. In JavaScript 1.3 (Netscape 4.06) änderte Push jedoch sein Verhalten, um es an Perl 5 anzupassen, und gab die neue Länge des Arrays zurück.

Rationalisierung

Warum wurde die neue Länge zurückgegeben? Länge als angemessener erachtet als die Rückgabe des angehängten Elements oder des mutierten Arrays? Diese Frage bleibt leider unbeantwortet. Die historischen Aufzeichnungen liefern kaum Details zu den Gründen für diese Abweichung von Perl 4. Wir können jedoch über einige mögliche Überlegungen spekulieren:

  • Vereinfachung der Implementierung: Die Rückgabe der neuen Länge könnte Auswirkungen haben Vereinfachte die Implementierung und erforderte weniger Code zum Verfolgen und Bearbeiten des hinzugefügten Elements oder des geänderten Arrays.
  • Konsistenz: Die Rückgabe der neuen Länge stimmt mit anderen Methoden überein, die Array-Längen manipulieren, wie z. B. Splice und Schicht. Diese Konsistenz wurde möglicherweise für eine intuitivere und kohärentere Benutzeroberfläche priorisiert.

Alternative Optionen

Hätten sich die Designer nicht für die Rückgabe der neuen Länge entschieden, gäbe es andere Optionen hätte in Betracht gezogen werden können:

  • Das neue Element zurückgeben: Dies würde direkten Zugriff auf das hinzugefügte Element ermöglichen und Entwicklern möglicherweise die Notwendigkeit ersparen, es manuell mit der neuen Länge abzurufen.
  • Geändertes Array zurückgeben: Durch die Rückgabe des Arrays selbst, so wie es durch den Push-Vorgang geändert wurde, könnte ein zusätzlicher Schritt zum Sammeln des aktualisierten Arrays überflüssig werden.

Fazit

Obwohl die spezifischen Gründe für die Rückgabe der neuen Länge durch Array.prototype.push nicht ganz klar sind, könnten ihre historischen Ursprünge in Perl und die potenziellen Vorteile von Einfachheit und Konsistenz sie beeinflusst haben Durchführung. Obwohl diese Designentscheidung möglicherweise nicht perfekt den Erwartungen der Entwickler entspricht, bietet sie ein klar definiertes und konsistentes Verhalten für die Bearbeitung von Arrays in JavaScript.

Das obige ist der detaillierte Inhalt vonWarum gibt Array.prototype.push die Länge und nicht das angehängte Element zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn