Le problème est également présent dans Safari. Comme d'autres l'ont souligné dans cette question et dans d'autres questions similaires, la console reçoit une référence à l'objet, elle imprime la valeur de l'objet au moment où la console a été ouverte. Si vous exécutez le code directement dans la console, par exemple, les valeurs s'impriment comme prévu. Au lieu d'utiliser la chaîne JSON, je préfère étaler des tableaux (par exemple, dans votre cas console.log([...C]) ; ) et des objets : le résultat est tout à fait le même, mais le code est un peu plus propre. J'ai deux Extraits de code VS à partager.
"Print object value to console": {
"prefix": "clo",
"body": [
"console.log(\"Spread object: \", {...$0});"
],
"description": "Prints object value instead of reference to console, to avoid console.log async update"
},
"Print array value to console": {
"prefix": "cla",
"body": [
"console.log(\"Spread array: \", [...$0]);"
],
"description": "Prints array value instead of reference to console, to avoid console.log async update"
}
Afin d'obtenir le même résultat qu'avec console.log( JSON.parse(JSON.stringify(c)))) vous pouvez laisser de côté la partie cordes si vous le souhaitez. Par ailleurs, le syntaxe de l'étalement permet souvent d'économiser du temps et du code.