2017-10-05 80 views
0

我有這樣做的,而循環添加項目在JavaScript中的數組的結尾/打字稿

trucks = []; 
fetchdata(){ 
    this.trucks = []; 

    do { 

    this._reportService.getReports({ 
     ..//pagination stuff here 
     }) 
     .subscribe(res=> { 
      this.trucks.push(res.rawdatatrucks); 
     }) 
    } while(i<this.totalRecords); 
    console.log(this.trucks) 

} 

上述作品,但數據以這種形式

0:[ 
    0:[ ...truck data stuff ], 
    1:[ ...truck data stuff ], 
    2:[ ...truck data stuff ], 
    3:[ ...truck data stuff ], 
], 
1:[ 
    0:[ ...truck data stuff ], 
    1:[ ...truck data stuff ], 
    2:[ ...truck data stuff ], 
    3:[ ...truck data stuff ], 
], 

推什麼,我很期待得到的是在數組的末尾附加數據,這樣我會得到

console.log(this.trucks) 

    0:[ ...truck data stuff ], 
    1:[ ...truck data stuff ], 
    2:[ ...truck data stuff ], 
    3:[ ...truck data stuff ], 
    4:[ ...truck data stuff ], 
    5:[ ...truck data stuff ], 
    6:[ ...truck data stuff ], 
    ....... 

從服務器響應at是

console.log(res.rawdatatrucks); 

始終從0開始,即使在while循環的其他迭代中也是如此。

還有什麼我需要添加到.push方法

回答

2

使用concat而不是push

this.trucks = this.trucks.concat(res.rawdatatrucks);

+0

concat無法正常工作。它將它作爲一個空數組 –

+1

請記住,'concat()'本身不會修改任何內容,它會返回一個新數組,您必須將其重新分配到'this.trucks'。 – Mitch

+0

我的糟糕的作品,我沒有分配它。謝謝 –

相關問題