2010-03-29 6 views
3

JS 함수를 따라했습니다.자바 스크립트 함수 푸시 문제

responseData:function(resp){ 
    this.jsondata = eval('(' + resp + ')'); 
    this.propList = []; 
    for (var i = 0;i<this.jsondata.length;i++) { 
     for (obj in this.jsondata[i]) { 
      alert(obj); //shows the property name of obj 
      this.propList.push({ 
       obj : this.jsondata[i][obj] //insert only simple obj string 
      }); 
     } 
    } 
    return this.propList; 
} 

나는 나의 propList에서 속성 이름과 값을 삽입 할, 대신이 기능은 간단한 삽입 속성 이름을 삽입 문자열로 'obj에'. 내가 뭘 잘못하고있어?

인사 스테판

답변

4

변경에 루프,

for (obj in this.jsondata[i]) { 
     alert(obj); //shows the property name of obj 
     var item = {}; 
     item[obj] = this.jsondata[i][obj]; 
     this.propList.push(item); 
    } 

당신은 속성 이름이 변수로 평가되지 않는 객체를 생성하는 객체 리터럴 사용

. 변수 현재 값을 사용하여 객체 속성의 이름을 지정하려면 obj[variable] 형식을 사용해야합니다. 그러면 이름이 variable과 같아지는 obj 내에 속성이 생성됩니다.

+0

정상적으로 작동 함 ok ty – Mark