2014-11-08 4 views
0

변수 name1, name2, name3 ... 등이 있는데 div에 쓰고 있습니다. 는 지금은 # {이름 1} # {NAME2} # {NAME3} 등을 사용하여 인쇄 할 수 있지만 Jade의 변수 이름에 숫자와 변수를 연결하십시오.

- for(var i = 0; i<3; i++) { div #{"name" + i} }

그래서 내가 출력을 원하는

옥에 for 루프를 사용하여이 작업을 수행 할 수 있습니다 be :

div #{name1} 
div #{name2} 
div #{name3} 

첫 번째 3 개 요소를 인쇄하려면 다음과 같이하십시오. 몇 가지 의미가 있기를 바랍니다. 내가 그것을 할 때 비취 위에있는 방법은 내가 변수 대신 div에 문자열을 넣는 것만으로 생각하는 것 같습니다. 중요한 경우 Express.JS를 사용하고 있습니다. 타이

+1

왜 단지라는 배열을하지를'대신 별도의 변수를 만드는 것을 반복 name'? – mscdex

+0

관련 http://stackoverflow.com/questions/5187530/variable-variables-in-javascript – laggingreflex

답변

0

옥 난 그냥 사업부 당신이 때문에

에 문자열을 넣어 것 같아 보인다!

당신이 말할 때 "... 대신 변수"당신이 정말로 의미하는 것은 그 값에 대한 참조 이다. 이것은 for 루프가 탁월합니다. 그러나 "name" + i은 문자열을 만들고 변수는 문자열로 참조되지 않습니다. 하나의 중요한 예외는 객체 속성입니다.

당신은 두 가지 선택이 있습니다

var names = [name1, name2, name3]; 
for (var i = 0; i < 3; i = i + 1) { 
    div #{names[i]} 
} 

또는 ...

var names = { 
    name1: name1, 
    name2: name2, 
    name3: name3 
}; 
for (var k in names) { 
    if (Object.prototype.hasOwnProperty.call(names, k)) { 
     div #{names[k]} 
    } 
}