2016-10-07 3 views
-2

내 D3.js 프로젝트의 일부로 HTML 선택 상자에서 선택한 값을 사용하여 객체와 관련된 특정 데이터 필드를 표시하는 막 대형 차트를 만듭니다. 내 데이터 개체의 필드는 thisthat입니다. 내 함수는 렌더링에문자열을 사용하여 객체를 참조 할 수 있습니까?

내 선택 상자가 변경 될 때 나는 "이"또는 "고"를 선택 여부에 따라 막대에 잔뜩 수행, selector

function selector() { 

//check what box is selected then call render with either this or that 

var selected = "this"; 

render(selected); 

} 

그런 다음 함수를 호출 .

function render(selectedValue) { 

if(selectedValue == "this") { 

return data.this; 

} else { 

return data.that; 

} 

} 

내 렌더링 기능은 훨씬 더 복잡하며 모든 본질적으로 반복되는 조건문이 여러 개 있습니다. "this"라는 문자열을 받았을 때 데이터의 메소드 (예 : data.this)에 액세스 할 수있는 방법이 있습니까? 그렇다면 이처럼 괴물 같은 if 문이 없습니까?

답변

2

데이터를 [ "이"] 사용하거나 그것을 변수를 전달할 수 있습니다

var b = "this"; 
return data[b]; 

귀하의 코드는 다음과 같을 것이다 :

function render(selectedValue) { 
    return data[selectedValue]; 
} 
관련 문제