Maison > Questions et réponses > le corps du texte
J'ai une fonction, appelons-la GetData(). Je récupère les données d'une requête dans une autre fonction et j'exécute un appel ajax pour remplir les données. Une fois cette opération terminée, j'envoie les données à une autre fonction, appelons-la PlaceData(). Chaque appel ajax à GetData() place les données dans un objet. J'envoie ensuite chaque objet à PlaceData() et je souhaite collecter ces objets dans un tableau dans PlaceData() via la méthode push(), mais à chaque fois, il ajoute simplement un nouveau tableau au lieu d'envoyer celui actuel. Les objets sont rassemblés , donc je ne reçois que des objets individuels, pas une collection. Comment puis-je les rassembler dans un tableau ?
Voici donc l'exemple de code que j'utilise :
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); };
Je veux que objCollect[] conserve tous les objets transmis, mais en fait, je reçois juste un nouveau tableau contenant chaque objet individuel.
P粉3511384622023-09-16 10:39:06
Vous devez utiliser des variables de portée globale pour stocker des objets. Définissez objCollect
en dehors de la fonction et il devrait maintenant contenir toutes les valeurs.
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); };