Maison > interface Web > js tutoriel > Comment puis-je garantir des objets uniques lors de l'utilisation de Array.prototype.fill() ?

Comment puis-je garantir des objets uniques lors de l'utilisation de Array.prototype.fill() ?

Mary-Kate Olsen
Libérer: 2024-12-18 16:50:20
original
264 Les gens l'ont consulté

How Can I Ensure Unique Objects When Using Array.prototype.fill()?

Array.prototype.fill() : Passer des objets comme références

La méthode Array.prototype.fill() est un utilitaire pratique pour initialiser un tableau avec une valeur spécifiée. Cependant, lors du remplissage d'un tableau avec des objets, les objets sont transmis comme références plutôt que de créer de nouvelles instances. Ce comportement soulève la question de savoir s'il existe un moyen de garantir que chaque élément du tableau est un objet unique.

Considérons l'exemple suivant :

var arr = new Array(2).fill({});
console.log(arr[0] === arr[1]); // true
Copier après la connexion

Dans cet exemple, deux objets sont créés et passés comme références à arr[0] et arr[1]. Modifier un élément du tableau affectera l'autre, car il s'agit du même objet :

arr[0].test = 'string';
console.log(arr[1].test); // 'string'
Copier après la connexion

Pour créer un nouvel objet pour chaque élément d'un tableau à l'aide de Array.prototype.fill(), vous pouvez suivre ces étapes :

  1. Remplissez le tableau avec n'importe quelle valeur arbitraire (par exemple, non définie) à l'aide de la méthode fill().
  2. Utilisez la map() méthode pour créer un nouveau tableau avec de nouvelles instances du type d'objet souhaité :
var arr = new Array(2).fill().map(u => ({}));
Copier après la connexion

Cette approche garantit que chaque élément du tableau est un objet distinct, isolé des autres :

arr[0].test = 'string';
console.log(arr[1].test); // undefined
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