gpt4 book ai didi

javascript - 我的对象在数组中被覆盖

转载 作者:太空狗 更新时间:2023-10-29 18:20:36 26 4
gpt4 key购买 nike

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

最佳答案

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

解决方案是将 result 变量从函数中拉出并放入外部范围。细节将取决于此功能是模块、类还是裸机的一部分。通常它看起来像这样:

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

关于javascript - 我的对象在数组中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com