0
votes

Comment changer une variable définie sur un tableau sans avoir à le définir deux fois

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: xxx pré>

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);


2 commentaires

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.


4 Réponses :


2
votes

weatdData est attribué la valeur réelle à myarray [1] 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 comme avec des pointeurs de style C.


0 commentaires

0
votes

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.


1 commentaires

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.



0
votes

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";


0 commentaires

0
votes

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


0 commentaires