Array.fill() en JavaScript : une mise en garde entre références et valeurs
Array.fill() est une méthode JavaScript utilisée pour remplir un tableau avec une valeur spécifiée. Cependant, il est important de comprendre qu'Array.fill() opère sur des références plutôt que sur des valeurs.
Le problème : référencement par rapport aux valeurs
Considérez le code suivant :
let m = Array(6).fill(Array(12).fill(0)); m[0][0] = 1; console.log(m[1][0]); // Outputs 1 instead of 0
Ici, nous créons une matrice 6x12 en utilisant Array.fill(). Cependant, lorsque nous définissons m0 sur 1, m1 devient également 1 de manière inattendue. En effet, Array.fill() crée des tableaux internes qui font tous référence au même objet Array.
Comportement attendu : valeurs
Au lieu de référencer, nous souhaiterons peut-être copier des valeurs à la place. En d'autres termes, changer m0 ne devrait pas affecter m1.
Solution : utiliser Array.from()
Pour forcer Array.fill() à copier les valeurs au lieu des références , nous pouvons utiliser Array.from() comme suit :
let m = Array.from({length: 6}, e => Array(12).fill(0)); m[0][0] = 1; console.log(m[1][0]); // Outputs 0 as expected
Array.from() garantit que chaque tableau interne est un objet distinct, empêchant ainsi une valeur involontaire partage.
Conclusion
Lorsque vous utilisez Array.fill(), soyez conscient de la différence entre les références et les valeurs. Pour les situations où vous souhaitez copier des valeurs plutôt que des références, envisagez plutôt d'utiliser Array.from().
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!