2017-10-05 35 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

我的糟糕的作品,我没有分配它。谢谢 –

相关问题