【问题标题】:Adding items to the end of an array in JavaScript/TypeScript在 JavaScript/TypeScript 中将项目添加到数组的末尾
【发布时间】:2017-10-05 01:45:15
【问题描述】:

我在while循环中做这个

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 ],
    .......

来自服务器的响应

console.log(res.rawdatatrucks);

即使在 while 循环的其他迭代中,也始终从 0 开始。

我还需要在 .push 方法中添加什么

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    使用concat 代替push。

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

    【讨论】:

    • concat 无法工作。它将它保留为一个空数组
    • 请记住,concat() 本身不会修改任何内容,它会返回一个新数组,您必须将其分配回this.trucks。
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2013-07-15
    • 2011-06-16
    相关资源
    最近更新 更多