Que se passe-t-il : type "Objet" pour les tableaux d'objets
En JavaScript, un phénomène inattendu se produit lorsqu'un tableau contient des objets. Au lieu d'être classé comme un « tableau », il est étiqueté comme un « objet ». Ce comportement devient évident dans des situations comme celle illustrée ci-dessous :
<code class="javascript">$.ajax({ url: 'http://api.twitter.com/1/statuses/user_timeline.json', data: { screen_name: 'mick__romney'}, dataType: 'jsonp', success: function(data) { console.dir(data); //Array[20] alert(typeof data); //Object } }); </code>
Pourquoi cette confusion ?
La raison derrière ce comportement particulier réside dans le comportement de JavaScript. Par défaut, Array est considéré comme un type « objet », même s'il représente une liste ordonnée de valeurs. Cela signifie que tous les tableaux, y compris ceux contenant des objets, héritent des propriétés et des fonctionnalités du type Objet.
Identification des tableaux
Pour déterminer si une variable est un véritable tableau , plusieurs approches peuvent être adoptées :
<code class="javascript">var isArr = data instanceof Array; var isArr = Array.isArray(data);</code>
Cependant, la méthode la plus fiable consiste à examiner la chaîne de prototypes de la variable :
<code class="javascript">isArr = Object.prototype.toString.call(data) == '[object Array]';</code>
Utiliser jQuery
Pour ceux qui utilisent jQuery, une fonction isArray dédiée est disponible :
<code class="javascript">var isArr = $.isArray(data);</code>
En employant ces méthodes, les développeurs peuvent catégoriser avec précision les variables sous forme de tableaux, même lorsqu'elles contiennent des objets, garantissant ainsi une gestion et une manipulation appropriées de leurs données. .
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!