我有一个函数,让我们称之为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); };