2013-08-07 4 views
0

이 해시 테이블에서 내 요소에 액세스하는 방법으로 원을 그리며 혼란스러워합니다. json에서 내 데이터를 성공적으로 반환했습니다. 객체이지만이 객체에는 fips와 해당 값의 두 열이 포함됩니다. 첫 번째 행에 액세스하려고합니다. 나는 raw.fips/raw [fips]와 raw [0]을 사용하여 모두 undefined를 반환하려고 시도했지만 raw에 데이터가 있습니다. 단지 액세스하지 못합니다. 이해시 테이블의 요소 액세스

$.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

감사합니다. 배열에 대한 해시 테이블에 대한 자세한 내용을 아직 읽지 않아도됩니다. 감사합니다. –

+0

문제 없습니다. . . 도와 줄 수있어서 기뻐. :) JS Objects vs. Arrays에 대한이 기사를 살펴보면 대부분의 기본 사항을 다룹니다. http://www.phabricator.com/docs/phabricator/article/Javascript_Object_and_Array.html – talemyn