如何在 Javascript 中收集从另一个函数发送的对象?

How do I collect objects being sent in from another function in Javascript?

提问人:E0132630 提问时间:4/5/2023 更新时间:4/5/2023 访问量:31

问:

我有一个函数,我们称之为GetData()。我正在从另一个函数的查询中提取数据,并运行 ajax 调用来填充数据。一旦发生这种情况,我就会发送到另一个函数,让我们调用 PlaceData()。每次通过 GetData() 中的 ajax 调用运行时,数据都会一起放在一个对象中。然后我将每个对象发送到 PlaceData(),我想通过 push() 方法将这些对象收集到 PlaceData() 的数组中,但每次它只是添加一个当前对象的新数组,所以我只得到单独的对象而不是集合。如何将它们收集到一个数组中?

所以这是我正在使用的代码示例:

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);
};

我希望objCollect[]保留所有被传入的对象,但相反,我只是得到一个包含每个单独对象的新数组

JavaScript 数组 ajax javascript 对象

评论


答:

2赞 Tushar Gupta 4/5/2023 #1

您需要使用全局范围的变量来存储对象。定义函数,它现在应该包含所有值。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);
};