범위 연산자는 배열의 출력 결과를 제어합니다
범위 연산자
연산자 | 설명 | 예 |
---|---|---|
limit | 출력 제한 연산자 | array limit number |
take | 출력 제한 연산자 | array take number |
skip | 건너 뛰기 연산자 | array skip number |
offset | 건너 뛰기 연산자 | array offset number |
to | 범위 지정 연산자 | number to number |
예제 1
limit 또는 take 연산자는 출력을 제한하는 연산자로 최대 출력 수를 지정할 수 있습니다. 아래 예제에서는 배열에 3개의 값이 존재합니다. limit를 이용해 2개의 값으로 제한하였기 때문에 결과 값으로 hello와 blogger만 출력됩니다.
<b:loop values='["hello", "blogger", "blogspot"] limit 2' var='item'>
<data:item/>
</b:loop>
<!--
결과:
hello blogger
-->
게시물(posts)도 동일하게 동작합니다. 이 경우 처음 두 개의 게시물의 제목만 출력하고 나머지 게시물은 무시됩니다.
<b:loop values='data:posts limit 2' var='item'>
<data:post.title/><br/>
</b:loop>
예제 2
offset 또는 skip 연산자는 주어진 수만큼 건너뛰기를 출력합니다. 아래 예제의 offset은 주어진 수만큼 건너뛰기 한 다음부터 출력합니다. 따라서 주어진 배열 중에서 두 개를 건너뛰므로 blogspot만 출력하게 됩니다.<b:loop values='["hello", "blogger", "blogspot"] offset 2' var='item'>
<data:item/>
</b:loop>
<!--
결과:
blogspot
-->
예제 3
to 연산자는 범위 지정 연산자로 사용할 수 있습니다. 예를 들어 다음은 2에서 9까지 배열을 만들어 출력합니다.
<b:loop values='2 to 9' var='item'>
<data:item/>
</b:loop>
<!--
결과:
2 3 4 5 6 7 8 9
-->
최근 글 중 3, 4, 5인 게시물만 가져오려면 아래와 같이 <b:loop>를 하나 더 만들어 해결할 수 있습니다.
<b:loop values='2 to 4' var='range'>
<b:loop index='num' values='data:posts' var='post'>
<b:if cond='data:num == data:range'>
<data:post.title/><br/>
<b:if>
<b:loop>
<b:loop>
<b:loop>의 인덱스 번호는 0부터 시작합니다. 예를 들어 현재 루프에 총 7개의 게시물이 있다고 가정해 봅시다. 7개의 게시물 번호는 0부터 6까지입니다. 3, 4, 5인 게시물을 가져오기 위해 범위를 지정하려면 '2 to 4'로 범위를 지정합니다. 게시물이 2~4에 해당하는 게시물을 출력하고, 나머지는 무시하게 됩니다.