2012-11-07 4 views
0

javascript에서 변수를 사용하여 특정 객체에 액세스하는 데 문제가 있습니다. 여기에 내가 함께 일하고 있어요 코드입니다 :변수가있는 JS 객체에 액세스

global_grouplist = getTenantGroupList(); 
console.log(global_grouplist) 
var currentgroup = getSelectedGroupName(); 
console.log(currentgroup) 
console.log(global_grouplist.currentgroup); 

'global_grouplist은'객체의 큰 배열을 반환하고, 나는 거기에서 특정 값을 싶어. 내가 값을 가지고가는 경우에 그 currentgroup은 동일하고, 다음과 같이 실행합니다 : 그것은 내가 원하는 걸 제공

console.log(global_grouplist.actualvalue) 

. 그러나, 내가 이것을 할 때.

var currentgroup = actualvalue 
console.log(global_grouplist.currentgroup) 

이것은 getTenantGroupList() 함수 : 그것은 작동하지 않습니다

function getSelectedGroupName(){ 
     var retval = null; 
     $('#grouplist li a').each(function(){ 
      if($(this).parent().hasClass('group-selected')) 
       retval=$(this).html(); 
     }); 
     return retval; 
    } 

: 여기

function getTenantGroupList(){ 
    return jQuery.parseJSON($.ajax({ 
      url: 'tenantgrouplist.json', 
      dataType: 'json', 
      async: false 
    }).responseText); 
} 

그리고는 getSelectedGroupName 기능입니다. 여기에 빠져있는 근본적인 것이 있습니까? 더 많은 정보가 필요하시면 알려 주시기 바랍니다.

+0

그런데 좋은 헤더가있는 서버에서 JSON을받는다면 구문 분석 할 필요가 없습니다. 응답은 이미 자바 스크립트 객체로 이루어져야합니다. –

답변

1

이 방식으로 속성에 액세스하려면 배열 표기법을 사용해야합니다. 이 시도 :이 행

var currentgroup = actualvalue 

당신이 currentgroup-actualvalue의 현재 값을 제공하고 두 요소가 동일한 속성으로 지적하지 않습니다와

var currentgroup = getSelectedGroupName(); // Returns a string like: 'actualvalue'; 
console.log(global_grouplist[currentgroup]) 
+0

완벽하게 작동합니다. 당신의 도움을 주셔서 대단히 감사합니다! – streetlight

2

을! 당신이 currentgroup에 문자열로 원하는 속성의 이름을 지정

var currentgroup = 'actualvalue'; 
console.log(global_grouplist[currentgroup]); 

그 방법을 브래킷 표기법을 사용하면 변수의 자리로 currentgroup을 사용하려면

대신 이것을 사용한다 개체의 각 속성에 액세스 할 수 있습니다.

+0

대단하군요! 설명해 주셔서 감사합니다. 매우 도움이됩니다. 그러나, 만약 내가 실제 값 (var currentgroup = functionGettingActualValue())에 대한 함수를 사용하고있다 - 그게 어떻게 바뀌지? – streetlight

+0

@streetlight 함수가 속성 식별자를 문자열로 반환하는 한 아무 것도 변경하지 않습니다. – Sirko

+0

Nevermind - 방금 표기법을 사용했고 잘못했음을 깨달았습니다. 양해 해 주셔서 감사합니다. – streetlight

관련 문제