0
votes

Le code dans la méthode d'abonnement ne fonctionne pas dans le bon ordre

de la demande d'obtention de la demande, je reçois une matrice d'objet et j'aimerais affecter ces données à deux variables différentes. Une variable obtiendra toutes les données, la deuxième variable obtiendra une version mutée de ces données.

Le code que j'ai essayé: xxx

Que se passe-t-il est que, pour une raison quelconque, la valeur des feuilles de temps est modifiée et mutationtielle obtient un tableau d'indéfinie


3 commentaires

Quelle version de angulaire?


Ma version angulaire est 6.1


Je pense que vous utilisez http. Utilisez httpClient angular.io/guide/http


3 Réponses :



0
votes

Cela ne fonctionne pas comme ça, lorsque la fonction de la carte renvoie une nouvelle matrice, il renvoie un nouveau tableau, mais les références d'objet sont identiques, par exemple si y ont xxx

cela signifie que l'objet utilisateur Les références sont les mêmes paster dans quel tableau vous l'avez défini, Ainsi, lorsque vous retournez un nouveau tableau à l'aide de la carte, les références d'objet restent identiques, alors tout ce que vous faites dans les objets est identique pour les deux tableaux, vous pouvez le faire pour empêcher que cela se produise xxx


0 commentaires

0
votes

Vous faites 2 erreurs forts>.

1) Copier la matrice par référence forte>. Donc, les feuilles de temps sont également modifiées p>

2) ne pas retourner forte> l'élément modifié de la carte p>


p>

Essayez ceci out H2>
this.service.getEmployeeTimesheets().subscribe(res => {

     this.timesheets = res; 
     this.mutatedTimesheets = res.map(j => {

       // Re-reference the current object
       j = {...j};

       delete j["keyName1"];
       delete j["keyName2"]; 

       return j;

     });

     console.log(this.mutatedTimesheets);

   });


0 commentaires