Ich habe eine Funktion, nennen wir sie GetData(). Ich erhalte die Daten aus einer Abfrage in einer anderen Funktion und führe einen Ajax-Aufruf aus, um die Daten aufzufüllen. Sobald dieser Vorgang abgeschlossen ist, sende ich die Daten an eine andere Funktion, nennen wir sie PlaceData(). Jeder Ajax-Aufruf von GetData() fügt die Daten in ein Objekt ein. Ich sende dann jedes Objekt an PlaceData() und möchte diese Objekte über die Methode push() in einem Array in PlaceData() sammeln, aber jedes Mal wird nur ein neues Array hinzugefügt, anstatt das aktuelle zu senden. Die Objekte werden zusammen gesammelt , sodass ich nur einzelne Objekte erhalte, keine Sammlung. Wie kann ich sie in einem Array sammeln?
Hier ist also das Codebeispiel, das ich verwende:
function GetData(query) { var json = ""; var api_url = ('https://jsondata.site?conn={conn}&query={query}'); $.ajax({async: false; url: api_url, method: "GET"}).done(function(data){ json = JSON.parse(data); }); PlaceData(json); }; function PlaceData(data) { var objCollect = []; objCollect.push(data); console.log(objCollect); };
Ich möchte, dass objCollect[] alle übergebenen Objekte behält, aber eigentlich erhalte ich nur ein neues Array, das jedes einzelne Objekt enthält.
你需要使用全局作用域变量来存储对象。将
objCollect
定义在函数外部,它现在应该保存所有的值。