2013-08-07 119 views
0

我正在圈子裏,因爲如何在此哈希表中訪問我的元素而感到困惑。我已成功從json返回數據。它是一個對象,但該對象包含兩列fips和相應的值。我想訪問第一行。我試過使用raw.fips/raw [fips]和raw [0]都返回undefined,但是原始數據中我只是不知道要訪問它。訪問哈希表中的元素

這裏是AJAX,如果有幫助

$.ajax({ 
    type: "GET", 
    url: WebRoot + "ws/GIS.asmx/CensusData", 
    data: d, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) { 
     fipsData = data.d;            
     console.log("json object returned data : " + fipsData); 
     init(regType, varId);     
    } //ends success function 
}); //ends ajax call 

阿賈克斯返回數據,並在日誌中有3141行/元素我不知道。

var raw = fipsData; 
var valMin = Infinity; 
var valMax = -Infinity;   

for (var index in raw) { 
    fipsCode = raw[fips]; 
    console.log(fipsCode); 
} 

//log data 
console.log("fipsData is : " + fipsData);    
console.log("Raw number :" + raw);//undefined 

回答

0

您使用此代碼中錯誤的索引:

for (var index in raw) { 
    fipsCode = raw[fips]; 
    console.log(fipsCode); 
} 

你已經設置index爲您所使用的循環變量,但使用的是fips當您嘗試訪問它。嘗試將fipsCode = raw[fips];更改爲fipsCode = raw[index];

此外,您應該始終通過hasOwnProperty檢查何時循環對象,以避免嘗試處理方法等。試試這個:

for (var index in raw) { 
    if (raw.hasOwnProperty(index)) { 
     fipsCode = raw[index]; 
     console.log(fipsCode); 
    } 
} 

如果不工作,那麼,如果你能證明你的一些返回的數據樣本,這將使它更容易保持的故障排除。

+0

釘了它謝謝。我必須閱讀更多關於哈希表vs數組,這仍然沒有爲我點擊。謝謝 –

+0

沒問題。 。 。樂於幫助。 :)看看這篇關於JS Objects和Arrays的文章,它涵蓋了大部分的基礎知識:http://www.phabricator.com/docs/phabricator/article/Javascript_Object_and_Array.html – talemyn