Javascript 我的对象在数组中被覆盖

Javascript 我的对象在数组中被覆盖,javascript,arrays,angular,object,typescript,Javascript,Arrays,Angular,Object,Typescript,我有一个函数,每次调用它时它都会接收对象,我想把这个对象存储在一个数组中。但是当我在数组中推送到达的对象时,上一个对象被覆盖。如何保存对象而不必每次在函数中覆盖以前的对象,以便在for()函数中打印所有对象 drawtimeline(i_items, nom_cal, _hitoService, idcalbuscador) { var container = document.getElementById('timeLine'); var result: any[] = [

我有一个函数,每次调用它时它都会接收对象,我想把这个对象存储在一个数组中。但是当我在数组中推送到达的对象时,上一个对象被覆盖。如何保存对象而不必每次在函数中覆盖以前的对象,以便在for()函数中打印所有对象

 drawtimeline(i_items, nom_cal, _hitoService, idcalbuscador) {
    var container = document.getElementById('timeLine');
     var result: any[] = [];
      result.push({  "_id": this.idcalbuscador, "title": nom_cal });
     for (let i of result) {
   console.log(i); 
         alert(i);
    }
}

您的
结果
变量是
drawtimeline
函数的本地变量。当该函数完成执行时,
结果
变量被清除。再次调用该函数时,将分配一个新的
结果
数组,这使它看起来像是在清除数组中存储的旧对象。每次运行该函数时,都会打印一个单独的数组,其中包含刚才推送的单个对象

解决方案是将
结果
变量从函数中拉出并放入外部范围。详细信息将取决于此函数是模块、类还是裸函数的一部分。通常情况下,它将如下所示:

var result: any[] = [];
drawtimeline(i_items, nom_cal, _hitoService, idcalbuscador) {
    var container = document.getElementById('timeLine');

    result.push({  "_id": this.idcalbuscador, "title": nom_cal });
    for (let i of result) {
        console.log(i); 
        alert(i);
    }
}
如果您正在上课,则需要使用
this.result