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
Susan Sarandonoriginal
2024-12-03 11:18:09995parcourir

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

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!

Déclaration:
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