Wie empfange und sammle ich ein übergebenes Objekt von einer anderen Funktion in JavaScript?
P粉413704245
P粉413704245 2023-09-15 13:12:20
0
1
644

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.

P粉413704245
P粉413704245

Antworte allen(1)
P粉351138462

你需要使用全局作用域变量来存储对象。将objCollect定义在函数外部,它现在应该保存所有的值。

var objCollect = [];

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) {
    objCollect.push(data);
    console.log(objCollect);
};
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage