首页  >  问答  >  正文

如何在JavaScript中从另一个函数中接收并收集传递的对象?

我有一个函数,让我们称之为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[]保留所有传入的对象,但实际上我只得到一个包含每个单独对象的新数组。

P粉413704245P粉413704245400 天前613

全部回复(1)我来回复

  • P粉351138462

    P粉3511384622023-09-16 10:39:06

    你需要使用全局作用域变量来存储对象。将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);
    };

    回复
    0
  • 取消回复