Maison > interface Web > js tutoriel > Pourquoi « new Array(count) » se comporte-t-il différemment des littéraux de tableau lors de l'utilisation de « map() » ?

Pourquoi « new Array(count) » se comporte-t-il différemment des littéraux de tableau lors de l'utilisation de « map() » ?

DDD
Libérer: 2024-12-13 11:53:13
original
188 Les gens l'ont consulté

Why Does `new Array(count)` Behave Differently from Array Literals When Using `map()`?

Pourquoi la création d'un tableau affecte-t-elle la transformation du tableau ?

Dans certains environnements, la création d'un tableau à l'aide de new Array(count) présente un comportement inattendu avec la méthode cartographique. Contrairement aux tableaux créés avec une syntaxe littérale (par exemple, [indéfini, indéfini, indéfini]), les tableaux construits via new Array(3) ne transforment pas correctement leurs éléments à l'aide de map.

Ce comportement est attribué à un tableau non rempli. Lors de la création d'un tableau à l'aide de new Array(count), les éléments du tableau résultant restent indéfinis. Cela diffère des tableaux créés à l'aide de la syntaxe littérale, qui initialisent automatiquement les éléments avec undéfini.

Pour contourner ce problème et garantir que la carte fonctionne correctement, il est recommandé de remplir les éléments du tableau avec n'importe quelle valeur, telle que undéfini. , avant de tenter la transformation. La méthode Array.prototype.fill() peut être utilisée à cet effet.

Par exemple, pour créer un tableau des 10 premiers entiers en utilisant new Array(count) et map :

let arr = new Array(10).fill(undefined).map((val, idx) => idx);
Copier après la connexion

Cela produira le résultat souhaité :

[0,1,2,3,4,5,6,7,8,9]
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal