Saya mempunyai fungsi, mari kita panggil ia GetData(). Saya mendapat data daripada pertanyaan dalam fungsi lain dan menjalankan panggilan ajax untuk mengisi data. Setelah operasi ini selesai, saya menghantar data ke fungsi lain, mari kita panggil PlaceData(). Setiap panggilan ajax ke GetData() meletakkan data dalam objek. Saya kemudian menghantar setiap objek ke PlaceData() dan saya ingin mengumpul objek ini ke dalam tatasusunan dalam PlaceData() melalui kaedah push(), tetapi setiap kali ia hanya menambah tatasusunan baharu dan bukannya menghantar yang semasa Objek dikumpulkan bersama , jadi saya hanya mendapat objek individu, bukan koleksi. Bagaimanakah saya boleh mengumpulnya ke dalam tatasusunan?
Jadi inilah contoh kod yang saya gunakan:
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); };
Saya mahu objCollect[] menyimpan semua objek yang dihantar, tetapi sebenarnya saya hanya mendapat tatasusunan baharu yang mengandungi setiap objek individu.
Anda perlu menggunakan pembolehubah skop global untuk menyimpan objek. Tentukan
objCollect
di luar fungsi dan ia kini harus memegang semua nilai.