Maison > interface Web > js tutoriel > Pourquoi `map()` renvoie-t-il des valeurs non définies sur les tableaux créés avec `new Array(count)` ?

Pourquoi `map()` renvoie-t-il des valeurs non définies sur les tableaux créés avec `new Array(count)` ?

Patricia Arquette
Libérer: 2024-12-07 07:00:12
original
770 Les gens l'ont consulté

Why Does `map()` Return Undefined Values on Arrays Created with `new Array(count)`?

Comprendre le comportement de la carte sur les tableaux créés avec un nouveau tableau (count)

Lorsque vous travaillez avec des tableaux JavaScript, il convient de noter un comportement particulier affiché par les tableaux créés à l'aide de la syntaxe new Array(count).

Comme démontré dans l'extrait de code ci-dessous, invoquer map() sur un tableau clairsemé (un tableau contenant des éléments non définis) créé avec new Array(count) donne un tableau de valeurs non définies :

var x = new Array(3);
x.map(function() { return 0; }); // [undefined, undefined, undefined]
Copier après la connexion

En revanche, effectuer la même opération sur un tableau dense array (un tableau sans éléments indéfinis) de même longueur fonctionne comme prévu :

var y = [undefined, undefined, undefined];
y.map(function() { return 0; }); // [0, 0, 0]
Copier après la connexion

Cette distinction vient du fait que new Array(count) crée un tableau clairsemé, ce qui signifie il n'attribue pas de valeurs par défaut à ses éléments. Par conséquent, map() ne peut effectuer aucune opération sur les éléments non définis, ce qui entraîne un tableau de valeurs non définies.

Pour surmonter ce problème, vous pouvez soit utiliser une syntaxe de tableau littéral pour créer un tableau dense, soit remplir explicitement le tableau clairsemé avec les valeurs par défaut souhaitées en utilisant des méthodes telles que Array.prototype.fill().

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal