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.
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.