簡體   English   中英

如何在 javascript 中存儲作為 ajax 查詢從 JSON 中提取數據的結果的對象數組?

[英]How do I store an array of objects that are a result of an ajax query pulling data from JSON in javascript?

我能夠使用下面的代碼成功檢索我的 JSON 對象。 當我記錄變量“value2”時,我可以在控制台中看到這些值。 但是我無法用 value2 填充我的“arraytest”。 當我在函數運行后在控制台中打印 arraytest 的值時,該數組為空。

    var accessURL = "https://lots-of-holes.firebaseio.com/.json";
    var arraytest= [];
    i=0;
    $.getJSON(accessURL, function(data){
    $.each(data, function (index, value) {
        $.each(value, function (index2, value2) {               
                arraytest[i++] = value2;
                console.log(value2);
        });
      });
    });
    console.log(arraytest);

這可能與查詢運行速度比我的 javascript 慢有關,但我不確定如何處理。 如果您認為這是其他事情並且仍想提供幫助,請給我留言,我會給您一個指向我的源代碼的鏈接。 我是 javascript 和 ajax 的新手。

JSON 如下:

{"-37 932570096604465 * 101 68831543328787":{"frequency":2.0,"lat":-37.932570096604465,"lon":101.68831543328787},"-79 14830348215878 * -147 67984075199726":{"frequency":2.0,"lat":-79.14830348215878,"lon":-147.67984075199726},"-9 566696357885519 * -86 19132124619011":{"frequency":2.0,"lat":-9.566696357885519,"lon":-86.19132124619011},"23 175286370699936 * -14 694988385655307":{"frequency":2.0,"lat":23.175286370699936,"lon":-14.694988385655307},"25 686572941892038 * -54 7326350327119":{"frequency":2.0,"lat":25.686572941892038,"lon":-54.7326350327119},"39 2538061 * -76 7143967":{"frequency":10.0,"lat":39.2538061,"lon":-76.7143967},"39 2538512 * -76 7144418":{"frequency":2.0,"lat":39.2538512,"lon":-76.7144418},"39 2543882 * -76 7132241":{"frequency":2.0,"lat":39.2543882,"lon":-76.7132241},"39 2543986 * -76 7133143":{"frequency":2.0,"lat":39.2543986,"lon":-76.7133143},"52 0353479004271 * 147 31906570837452":{"frequency":2.0,"lat":52.0353479004271,"lon":147.31906570837452},"7 568992516106547 * 37 95350231539729":{"frequency":2.0,"lat":7.568992516106547,"lon":37.95350231539729},"78 51991220059591 * 69 61956909362064":{"frequency":2.0,"lat":78.51991220059591,"lon":69.61956909362064}}

$.getJSON是一個異步函數。 所以console.log(arraytest)在 arraytest 填充之前運行。

你可以試試這個:

    var accessURL = "https://lots-of-holes.firebaseio.com/.json";
    var arraytest= [];
    i=0;
    $.getJSON(accessURL, function(data){
    $.each(data, function (index, value) {
        $.each(value, function (index2, value2) {               
                arraytest[i++] = value2;
                console.log(value2);
        });
      });
    console.log(arraytest);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM