私はループを作成してオブジェクトを作成します。ループはいつも同じ最後の値を返します
Action.ts
public campaing:any = {
'id': '',
'campaing_code': '',
'campaing_type': '',
'start_date': this.currentDate,
'end_date': this.currentDate,
'deadline': this.currentDate,
'creation_date': this.currentDate,
'special': false,
'os': '',
'country': '',
'campaing_country': 'germany',
'version_app': '',
'permanent_promo': false,
'promo_tag': 'ABS-W-',
'editor_name': '',
'plus_promotag': '',
'status': 'Successful',
'application': {},
'publisher': {},
'contact': '',
'sended': false
};
public searchparram: any = {
'type': '',
'time': '',
'start_date': this.currentDate,
'deadline': this.currentDate,
'publisher': {},
'wildcard': false,
'os': '',
'category': '',
'number_campaings': 1
}
public suggescampaings:any = [];
public generateCampaings(){
this.campaing.campaing_code = this.searchparram.type;
this.campaing.start_date = this.searchparram.start_date;
this.campaing.deadline = this.searchparram.deadline;
this.campaing.publisher = this.searchparram.publisher;
this.campaing.os = this.searchparram.os;
for (let i = 1; i <= this.searchparram.number_campaings; i++) {
((i)=>{
this.campaing.id = i; /* Here should print i but alway print the last value of i */
this.suggescampaings.push(this.campaing);
})(i);
}
}
しかし、私はcamaping.idを入れしようとする=私は、常に反復の最後の値を返します。私はitereionが8回IDであることを常に意味します。
だからアイデアを入れて反復を行い、次にオブジェクトに配列をプッシュすることです。
あなたはもちろん、同じオブジェクト( 'this') – Andreas
を変更しているので、それが唯一の最後を持っています値。各ループで 'this.campaing.id'を上書きしています。あなたは何を期待しましたか? – Saravana