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
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'
Pour créer un nouvel objet pour chaque élément d'un tableau à l'aide de Array.prototype.fill(), vous pouvez suivre ces étapes :
var arr = new Array(2).fill().map(u => ({}));
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
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!