Как мне получить доступ к части списка в Jinja2

Array.size () не является допустимым методом

Всегда используйте свойство длины

Существует библиотека или сценарий, добавляющий метод размера к прототипу массива так как это не собственный метод массива. Обычно это делается для добавления поддержки пользовательского геттера. Примером использования этого может быть, когда вы хотите получить размер в памяти массива (это единственное, о чем я могу подумать, это будет полезно для этого имени).

К сожалению, Underscore.js определяет метод size, который фактически возвращает длину объекта или массива. Поскольку, к сожалению, свойство length функции определяется как число именованных аргументов, функция объявляет, что они должны использовать альтернативу, и был выбран размер (count был бы лучшим выбором).

24
задан Brad Mace 31 October 2010 в 07:37
поделиться

3 ответа

это немного проще, я думаю, без использования фильтра слайса :

{% for post in site.posts | reverse | list[0:4] %}
  <li>&raquo; <a href="/{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}

другим способом является использование расширения элементов управления циклом :

{% for post in site.posts | reverse %}
  {%- if loop.index > 4 %}{% break %}{% endif %}
  <li>&raquo; <a href="/{{ post.url }}">{{ post.title }}</a></li>
{%- endfor %}
16
ответ дан 28 November 2019 в 23:27
поделиться

@ У Андрея правильный ответ. Однако, чтобы полностью решить ваш вопрос:

{% for recent in site.posts|batch(5)|list|last|reverse %}
        <li> <a href="/{{ recent.url }}">{{ recent.title }}</a></li>
{% endfor %}

В качестве альтернативы:

{% for recent in site.posts|reverse|batch(5)|first %}
        <li> <a href="/{{ recent.url }}">{{ recent.title }}</a></li>
{% endfor %}

Какой из них вы используете, зависит от ваших предпочтений.

1
ответ дан 28 November 2019 в 23:27
поделиться

Я придумал следующий код:

{% for x in xs | batch(n) | first %}
    ...
{% endfor %}

Фильтр batch(n) разбивает список xs на подсписки длиной n, затем фильтр first выбирает первый из этих подсписки.

10
ответ дан 28 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: