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