Maison  >  Article  >  interface Web  >  Pourquoi Array.prototype.push renvoie-t-il la longueur et non l'élément ajouté ?

Pourquoi Array.prototype.push renvoie-t-il la longueur et non l'élément ajouté ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 10:09:30698parcourir

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

Le cas curieux d'Array.prototype.push : pourquoi il renvoie la longueur au lieu de quelque chose de plus pratique

Array.prototype.push est un Méthode JavaScript qui étend un tableau avec un ou plusieurs éléments. Contrairement à ses homologues plus intuitifs qui renvoient l'élément nouvellement ajouté ou le tableau modifié lui-même, push renvoie curieusement la nouvelle longueur du tableau. Ce comportement non conventionnel a soulevé des questions sur les décisions de conception qui ont conduit à sa mise en œuvre actuelle.

Contexte historique

Pour découvrir la justification de ce choix de conception, nous approfondissons le histoire de poussée. Comme le raconte le centre de communication de TC39, le push a fait ses débuts dans JavaScript 1.2 (Netscape 4) en 1997, inspiré des fonctions de manipulation de tableaux de Perl. Initialement, push renvoyait le dernier élément poussé, conformément aux conventions Perl 4. Cependant, dans JavaScript 1.3 (Netscape 4.06), push a modifié son comportement pour s'aligner sur Perl 5, renvoyant la nouvelle longueur du tableau.

Rationalisation

Pourquoi renvoyait-il la nouvelle longueur jugée plus appropriée que de renvoyer l'élément ajouté ou le tableau muté ? Cette question reste malheureusement sans réponse. Les archives historiques fournissent peu de détails sur le raisonnement derrière cet écart par rapport à Perl 4. Cependant, nous pouvons spéculer sur certaines considérations potentielles :

  • Simplification de la mise en œuvre :Le retour de la nouvelle longueur peut avoir simplifié l'implémentation, nécessitant moins de code pour suivre et manipuler l'élément ajouté ou le tableau modifié.
  • Cohérence : Le renvoi de la nouvelle longueur s'aligne sur d'autres méthodes qui manipulent les longueurs de tableau, telles que l'épissure et changement. Cette cohérence aurait peut-être été priorisée pour une interface plus intuitive et cohérente.

Options alternatives

Si les concepteurs n'avaient pas opté pour le retour de la nouvelle longueur, d'autres options aurait pu être envisagé :

  • Renvoyer le nouvel élément : Cela fournirait un accès direct à l'élément ajouté, évitant ainsi aux développeurs d'avoir à le récupérer manuellement en utilisant la nouvelle longueur.
  • Renvoyer le tableau modifié : Le retour du tableau lui-même, tel que modifié par l'opération push, pourrait éliminer le besoin d'une étape supplémentaire pour rassembler le tableau mis à jour.

Conclusion

Bien que la raison spécifique derrière Array.prototype.push qui renvoie la nouvelle longueur ne soit pas tout à fait claire, ses origines historiques en Perl et les avantages potentiels de simplicité et de cohérence peuvent avoir influencé sa mise en œuvre. Bien que cette décision de conception ne corresponde pas parfaitement aux attentes des développeurs, elle fournit un comportement bien défini et cohérent pour manipuler les tableaux en JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn