2012-09-20 4 views
0

나는 이것이 내가 습관을 만들어야하는 것이 아님을 이해합니다. 하지만 Javascript 배열 속성으로 저장되는 문자열에 변수를 연결하려고했습니다. 예를 들어자바 스크립트 배열 속성 내에서 변수와 문자열 연결하기

나는이 :

var form = { 
    'var1' : 'has a value here', 
    'array' : [ 
     [ 'some text', 'some more text' ], 
     [ 'second line of text', 'second entry ' + form.var1] 
    ] 
}; 
alert(form.array[1][1]); 

경고의 결과는 '정의되지 않은'디스플레이하는 것이다.

내가 대신 이렇게하면

은 :

var var1 = 'has a value here'; 
var form = { 
    'array' : [ 
     [ 'some text', 'some more text' ], 
     [ 'second line of text', 'second entry ' + var1 ] 
    ] 
}; 
alert(form.array[1][1]); 

이 문자열은 제대로 정의 및 표시된다.

'form'개체 아래에 그 값을 저장할 수있는 방법이 있습니까? 여전히 원하는 결과를 얻을 수 있습니까? 나는 '아니오'라고 생각하고있다. 그러나 나는 묻고 싶다고 생각했다. (Google에 어려운 질문입니다. :

+2

': ='는 오타입니까? – xdazz

+0

네, 그건 오타였습니다. 고침, 고마워. xD – Squish

답변

1

당신은 두 부분으로 선언 할 수 :

var form = { 
    'var1' : 'has a value here' 
}; 

form['array'] = [ 
    [ 'some text', 'some more text' ], 
    [ 'second line of text', 'second entry ' + form.var1] 
]; 

alert(form.array[1][1]); 
+0

환상적인 아이디어! 고마워 xD – Squish

1

개체 리터럴 (개체식이 끝나기 전에 form은 정의되지 않았습니다.)에서는 사용할 수 없지만 외부에서 수행 할 수는 있습니다.

var form = { 
    'var1' : 'has a value here', 
    'array' : [ 
     [ 'some text', 'some more text' ], 
     [ 'second line of text', 'second entry '] 
    ] 
}; 

form.array[1][1] += form.var1; 
alert(form.array[1][1]);​ 
+0

dbaseman은 내가 찾고있는 것과 비슷한 대답을 가지고 있습니다. 그러나 이것은 내가 생각하지 못했던 또 하나의 해결책입니다. 고맙습니다! : D – Squish

0

내가 당신도 경고 문에 도달 놀란다. 양식이 정의되어 있지 않기 때문에 코드가 form.var1에 도착하자마자 실패합니다. 이를 달성하는 한 가지 방법은 그것들을 개별적으로 정의하는 것입니다. 좋아요.

var form = {}; 
    form.var1 = 'has a value here'; 
    form.array = [ 
     [ 'some text', 'some more text' ], 
     [ 'second line of text', 'second entry ' + form.var1] 
    ]; 
+0

양식이 선언되었습니다. 그것은 방금 (여분의) 속기입니다. – Squish

+0

@Squish 개체의 범위 내에서 선언되지 않았 음을 의미합니다. 동일한 개체를 나타냅니다. – hsalama