C'est un peu difficile d'expliquer (plus que je ne connais pas la terminologie pour cela, mais c'est à côté du point), mais fondamentalement: donc ici j'ai changé le tableau de [1 , 2,3] à [1,4,3], mais la valeur de Weatdata génère toujours comme 2. Est-ce que je faisais quelque chose de mal ou devrais-je juste devoir la définir à nouveau en faisant P> var myArray = [1,2,3];
var wantedData = myArray[1];
console.log(wantedData);
myArray[1] = 4;
wantedData = myArray[1];
console.log(wantedData);
4 Réponses :
weatdData code> est attribué la valeur réelle à
myarray [1] code> non seulement une référence à celle-ci. Les modifications apportées aux valeurs de la matrice ne seront donc pas reflétées dans la valeur
WeattData Code> comme avec des pointeurs de style C. P>
WeattData est un type de données primitif, tandis que MyARRAY est un type de référence. Ainsi, lorsque la référence change, la variable primitive ne sera pas affectée de celle-ci. P>
Pouvez-vous montrer un échantillon d'erreur de code de justanothersenpai / ce que vous avez corrigé? Pour que les gens puissent voir un exemple s'ils ne comprennent pas votre explication.
dans les types avancés JavaScript sont passés par des types de référence et primitifs par valeur. Cela signifie que si vous faites cela:
var a = { name: 'Name' }; var b = a; b.name = "New value";
D'autres réponses sont correctes, mais si vous voulez obtenir ce que vous demandez, vous pouvez utiliser une chose comme ceci:
p>
var myArray = [1,2,3]; var wantedData = ()=> myArray[1]; // or function(){return myArray[1]} console.log( wantedData() ); // 2 myArray[1] = 4; console.log( wantedData() ); // 4
Si vous ne suivez pas la deuxième méthode, vous aurez toujours 2 en tant que valeur. Outre votre question n'est pas si claire. Vous pouvez élaborer plus de choses afin que nous puissions aider.
Vous devez le définir à nouveau.