Maison  >  Questions et réponses  >  le corps du texte

Comment recevoir et collecter un objet passé depuis une autre fonction en JavaScript ?

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粉413704245P粉413704245400 Il y a quelques jours614

répondre à tous(1)je répondrai

  • P粉351138462

    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);
    };

    répondre
    0
  • Annulerrépondre