Maison > interface Web > js tutoriel > Pourquoi la méthode `map` de JavaScript ignore-t-elle les éléments non définis dans les tableaux clairsemés ?

Pourquoi la méthode `map` de JavaScript ignore-t-elle les éléments non définis dans les tableaux clairsemés ?

Patricia Arquette
Libérer: 2024-12-10 01:10:10
original
118 Les gens l'ont consulté

Why Does JavaScript's `map` Method Skip Undefined Elements in Sparse Arrays?

Comprendre la création d'un tableau et la méthode map en JavaScript

Lors de la création d'un tableau à l'aide de la nouvelle expression Array(count), vous créez essentiellement un tableau clairsemé. Les tableaux clairsemés contiennent des « trous » ou des éléments non définis au niveau des indices auxquels aucune valeur n'a été explicitement attribuée. Ce comportement diffère des tableaux créés à l'aide de la syntaxe littérale de tableau ([1, 2, 3]), qui ont défini des valeurs pour tous les éléments.

La méthode map, quant à elle, tente d'appliquer une fonction de transformation à chaque élément d'un tableau. Cependant, lorsqu'elle est appliquée à un tableau clairsemé, la méthode map ignore les éléments non définis et transforme uniquement les éléments définis. Cela explique le comportement apparemment inattendu observé dans l'extrait de code donné.

Résoudre le problème

Pour résoudre ce problème, on peut résoudre le problème de la rareté du tableau avant d'appliquer le méthode cartographique. La méthode Array.prototype.fill() peut être utilisée pour attribuer une valeur par défaut (telle que non définie) à tous les éléments du tableau. Alternativement, la méthode map peut être combinée avec une instruction conditionnelle pour transformer uniquement les éléments définis :

var x = new Array(3).fill(undefined);
var y = x.map(function(e) { return e !== undefined ? 0 : 1; });
console.log(y); // [1, 1, 1]
Copier après la connexion

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