0
votes

La nouvelle valeur insérée remplace toutes les valeurs du tableau

J'essaie de stocker une valeur d'un paramètre à un tableau. Malheureusement, lorsque j'essaie de pousser une valeur, cela a également changé la valeur précédente. Donc, à la fin, ils ont tous la même valeur, mais cela ne devrait pas.

Par exemple: je pousse "1". Il stocke, mais lorsque je pousse "2", il a remplacé le "1"

 Entrez la description de l'image ici

Voici mon code: xxx


3 commentaires

Quelle valeur antérieure? Numarr est créé Intérieur Le Ajoutez Fonction (ANEW, TEMPS TIME La fonction est appelée) et est la poubelle recueillie lorsque cette fonction est terminée.


Est-ce un comportement normal que la valeur est ajoutée 10 fois?


Le journal d'image ne peut pas être celui du code ci-dessous, car le tableau doit avoir 10 éléments, ni 1, ni 2.


5 Réponses :


3
votes

Créez le tableau global, lorsqu'il est à l'intérieur de la fonction, chaque fois que la fonction est appelée une nouvelle matrice est créée. Lorsque le tableau est global, ce problème ne se pose pas

p>

var numArr = [];
function Add(num) {
  var count = 10;
  for (var i = 0; i < count; i++) {
    numArr.push(num);
  }
  console.log(numArr);
}
Add(11)
Add(112)


1 commentaires

Si vous avez un tableau plus d'un tableau à mettre à jour, vous pouvez également utiliser la référence de tableau de paramètre. Par example; Fonction Ajouter (Myarr, Num) et Ajouter (SuperArray, 11) et ajouter (SuperArray, 112)



1
votes

La raison pour laquelle la valeur précédente est remplacée est celle avec chaque appel de la fonction, vous déclarez votre tableau, sans valeurs, sans valeurs, var numarr = [] . Déplacez cette définition en dehors de cette fonction et il devrait s'agir simplement d'une amende


0 commentaires

0
votes

var numArr = [];
const Add = (num) => {
  var count= num;
  for (let i = 0; i < count; i++) {
    numArr.push(num);
  }
  return numArr
}

console.log(Add(10))


1 commentaires

Vous pouvez utiliser la fonction de flèche, laissez comme ci-dessus.



0
votes

Le problème est que vous instanciez la matrice dans chaque itération de la boucle. La solution simple consiste à transmettre le tableau dans la fonction ajouter () code>.

p>

var arr = new Array(10);
arr.fill(999);
console.log(arr);


0 commentaires

0
votes

Le problème est que vous créez une nouvelle matrice lorsque vous appuyez sur Nouvelle valeur.Vous pouvez créer une matrice globale et appuyez sur la valeur de la valeur.

p>

<script>
_glb_arr=[];

$(document).ready(function (){
  Add(1);
  Add(3);
  console.log(_glb_arr);
});

function Add(val){
 _glb_arr.push(val);  
}

</script>


0 commentaires