2013-08-07 74 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