Maison > interface Web > js tutoriel > Pourquoi Array.fill(Array) crée-t-il des copies par référence dans des tableaux multidimensionnels ?

Pourquoi Array.fill(Array) crée-t-il des copies par référence dans des tableaux multidimensionnels ?

Barbara Streisand
Libérer: 2024-11-29 09:30:11
original
874 Les gens l'ont consulté

Why Does Array.fill(Array) Create Copies by Reference in Multidimensional Arrays?

Array.fill(Array) crée des copies par référence

Lorsque vous utilisez Array.fill pour créer des tableaux multidimensionnels, il est important de savoir que les tableaux internes sont initialement des copies par référence. Cela signifie que toute modification apportée à un tableau interne sera reflétée dans tous les autres faisant référence au même objet Array.

Par exemple :

let m = Array(6).fill(Array(12).fill(0));

m[0][0] = 1;
console.log(m[1][0]); // Outputs 1 instead of 0
Copier après la connexion

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

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

m[0][0] = 1;
console.log(m[0][0]); // Expecting 1
console.log(m[0][1]); // Expecting 0
console.log(m[1][0]); // Expecting 0
Copier après la connexion

Array.from() crée une copie de l'objet itérable (dans ce cas, un objet avec une propriété de longueur et une fonction de mappage qui renvoie un nouveau tableau). Cela garantit que chaque tableau interne est indépendant et que toute modification apportée à l'un n'affectera pas les autres.

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