La console produit une valeur de tableau modifiée avant la modification
En JavaScript, les variables sont généralement transmises par référence, ce qui signifie que les modifications apportées à la variable après celle-ci a été affecté à une autre variable sera reflété dans les deux variables. Ce comportement est souvent observé lorsque console.log() est utilisé pour afficher la valeur d'une variable.
Par exemple, considérons le code suivant :
let A = [2, 1]; let C = A; console.log(C); // [1, 2]
Dans cet exemple, la variable C se voit attribuer une référence au tableau stocké dans la variable A. Lorsque console.log(C) est exécuté, il affiche la valeur actuelle du tableau, qui est [1, 2]. Cependant, cette valeur peut ne pas être à jour si le tableau A d'origine est modifié ultérieurement.
A.sort(); console.log(C); // [1, 2]
Lors de l'exécution de la méthode sort() sur le tableau A, ses éléments sont triés sur place. Puisque le tableau C contient une référence au même objet, la sortie de console.log(C) reste [1, 2]. En effet, console.log() affiche la valeur actuelle de l'objet au moment de l'exécution, et non une valeur statique.
Pour éviter ce comportement inattendu et garantir que console.log() génère des valeurs précises, vous peut soit utiliser :
console.log(JSON.parse(JSON.stringify(C)));
Ou, comme le suggère MDN :
Object.assign({}, A)
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!