2016-12-12 2 views
0

Ich möchte meine Tabelle dynamisch erstellen, indem ich sie zuweist. nbrBoules ist die Variable:Daten in Array übertragen: Immer den letzten Index mit TypeScript erhalten

boules:Boule :[] 
boule:Boule; Boule{id,poids} 
Method(){ 

for (var _i = 0; _i < this.nbrBoules; _i++) { 
     this.boule.id = _i; 
     alert(_i); 
     this.boule.poids = 10; 
     this.boules[_i] = this.boule; 

} 

Als ich das Ergebnis this.boules zeige ich mir 0 - -1 -2 -3 -4 -5 -6 -7 immer 7-10|7-10|7-10|7-10|7-10|7-10|7-10|7-10| und in meiner Benachrichtigung erhalten.

Wie funktioniert es in Typescript und warum bekomme ich immer den letzten Index?

+0

Leeren Sie Ihre Boule am Ende der Schleife. 'this.boule = {};' sollte funktionieren. @norbertk Antwort erklärt, warum Sie diesen Fehler erhalten. –

Antwort

0

Nicht sicher, was Sie zu tun versuchen, aber Sie erstellen keine neuen Objekte. this.boule ändert sich nicht. Sie setzen this.boules[I] auf das gleiche Objekt. Nach dem Ausführen der Schleife wird die letzte ID 7 sein. Aber alle Elemente von this.boules werden auf das gleiche Objekt zeigen, so dass sie alle 7 sind.

Verwandte Themen