首頁  >  問答  >  主體

如何在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 天前615

全部回覆(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
  • 取消回覆