Grails MongoDB $ {it}数组的前三个条目

时间:2012-10-04 11:05:00

标签: arrays mongodb grails each

经过一天的反复试验,也许有人能给我一个解决问题的暗示吗?

我的任务是使用MongoDB开发Grails-Application的前端 我想表达的是,只有JSON数组的前三个部分将作为列表点存在于div中,接下来的三个部分将作为li进入另一个div。

在以下示例中,他只是添加了li中的每个条目:

<g:each in="${profil.leistung}">
 <div>
 <li> ${it} </li>
</div>
</g:each>

我尝试了几种东西,但没有得到它 希望得到帮助,我的笔记本电脑上会有很多Backflips用于解决! 约翰

1 个答案:

答案 0 :(得分:0)

我不确定JSON数组,但是对于普通数组或列表,你可以通过仔细使用切片来做到这一点:

<g:each var="chunk" in="${0..<(profil.leistung.size().intdiv(3) +
                               (profil.leistung.size() % 3 ? 1 : 0))}">
  <div>
    <ul>
      <g:each in="${profil.leistung[(chunk * 3)..<(Math.min(
                                  profil.leistung.size(), (chunk + 1) * 3))]}">
        <li>${it}</li>
      </g:each>
    </ul>
  </div>
</g:each>

我在这里做的是计算出我们可以将列表分成三个元素的块数(最后一个块可能少于三个元素),然后每次通过外部循环切出元素{{1}包含到3n独占或列表的末尾(以先到者为准)。如果您知道列表长度总是是三的精确倍数,那么您可以删除边缘情况:

3(n+1)