Maison > interface Web > js tutoriel > Pourquoi Array.fill() crée-t-il des références partagées dans des tableaux bidimensionnels ?

Pourquoi Array.fill() crée-t-il des références partagées dans des tableaux bidimensionnels ?

Susan Sarandon
Libérer: 2024-12-03 11:18:09
original
992 Les gens l'ont consulté

Why Does Array.fill() Create Shared References in Two-Dimensional Arrays?

Array.fill() copie les références, pas les valeurs

Lorsque vous tentez d'initialiser une matrice bidimensionnelle avec Array.fill(), vous pouvez rencontrer un problème où les tableaux internes partagent des références, provoquant des résultats inattendus.

Pour résoudre ce problème, vous pouvez utiliser Array.from() :

let m = Array.from({length: 6}, () => Array(12).fill(0));

m[0][0] = 1;
console.log(m[0][0]); // Outputs 1, as expected
console.log(m[1][0]); // Outputs 0, as intended
Copier après la connexion

Cette approche crée des tableaux internes de copie par valeur, garantissant que les modifications apportées à un tableau n'affectent pas les autres. Chaque tableau interne est un objet distinct, offrant l'indépendance souhaitée.

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