Maison >interface Web >js tutoriel >Comment les attributions de propriétés affectent-elles la longueur du tableau JavaScript ?

Comment les attributions de propriétés affectent-elles la longueur du tableau JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 03:40:13918parcourir

How Do Property Assignments Affect JavaScript Array Length?

Anomalies des tableaux : propriétés par rapport aux éléments

En JavaScript, la polyvalence des objets s'étend également aux tableaux. Ce curieux phénomène vient du fait que les tableaux héritent du prototype Object. En conséquence, les tableaux peuvent être manipulés comme s'il s'agissait d'objets.

Affectation de propriétés dans les tableaux

Considérez les extraits de code suivants :

var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";

et

var myObject = {'A': 'Athens', 'B':'Berlin'};

Ces extraits de code semblent équivalents car ils créent tous deux des objets avec des propriétés nommées. Cependant, il existe une différence fondamentale entre eux.

Pièges de l'abus de propriété

Bien que les tableaux puissent être traités comme des objets, il est important de noter que les tableaux sont principalement destinés pour les données indexées numériquement. L'attribution de clés non numériques à un tableau peut entraîner un comportement inattendu.

Par exemple, considérez ce qui suit :

var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";

alert(myArray.length);

Au lieu d'afficher « 2 » (le nombre attendu d'éléments), l'alerte affiche « 0 ». En effet, les touches non numériques (« A » et « B ») n'incrémentent pas la propriété length du tableau, qui suit le nombre d'éléments indexés numériquement.

En conclusion, même s'il peut sembler pratique d'ajouter propriétés nommées des tableaux, cette pratique doit être évitée car elle compromet l'objectif des tableaux et peut conduire à un comportement inattendu. Pour les touches non numériques, il est recommandé d'utiliser plutôt un objet pur.

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
Article précédent:Multiplicateur Flappy BirdArticle suivant:Multiplicateur Flappy Bird