Bonjour,
J'ai un tableau qui va contenir des objets JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 stock_objets=[];
et j'ai des objets instanciés de cette classe :
Je fais un push de l'objet cuillère dans le tableau d'objets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // La classe Objet. class TObjet{ constructor(nom,numero,poids,quantité){ this.nom=nom; this.numero=numero; this.poids=poids; this.quantité=quantité; } } // Création d'une cuillère. let Cuillère=new TObjet("Cuillère",2,4,1); // Création d'une fourchette. let Fourchette=new TObjet("Fourchette",1,3,1);
Le tableau contient donc quantité=1 pour la cuillère.
Je voudrais savoir comment faire pour que lorsque je fais un second push d'un objet cuillère dont la quantité serait de 3, la quantité totale de cuillères soit mise à jour pour faire 1+3= 4 Cuillères au total.
Mais si on liste le tableau, il ne faudrait pas voir plusieurs objets cuillère (plusieurs push) dans la liste mais seulement un objet cuillère dont la quantité a été modifièé.
J'ai essayé avec ce code test ci-dessous, et la quantité de cuillères dans le tableau prend la derniere valeur de Cuillère.quantité, alors que je n'aie pas fait un push pour cela.
On peut mieux me comprendre en analysant ce code :
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 console.log("****************************"); Cuillère.quantité=2; stock_objets.push(Cuillère); console.log(stock_objets[0].nom+" : "+stock_objets[0].quantité); // <-------- Indique : Cuillère : 2 Cuillère.quantité=5; console.log(stock_objets[0].nom+" : "+stock_objets[0].quantité); // <-------- Indique : Cuillère : 5
En fait, aprés avoir stocké un objet dans le tableau, toutes modification de l'objet se répercute sur celui qui est stocké dans le tableau.
Ce qui n'est pas ce que je veux.
Partager