我有一個函數,讓我們稱之為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粉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); };