for-loop - 无法使用 Nunjucks for 循环获取数组中项目的索引

标签 for-loop templating nunjucks

我在从 Nunjucks {% for %} 获取数组中项目的索引时遇到了一些麻烦环形。

我定位的数组很简单,看起来像这样
pages[1,2,3]
这是 Nunjucks 循环
{% for i,p in data.tickets.pages %} {{ i }} : {{ p }} {% endfor %}
问题
{{ p }}输出 1,2,3但是 {{ i }}不输出任何东西。

如果有人能告诉我如何解决这个问题,我将不胜感激。提前致谢!

最佳答案

要在 for 循环中获取索引,请使用 loop.index (loop.index 以 1 开头)
要获得标准行为(以 0 开头),请使用 loop.index0

data.tickets.pages = [1, 2, 3];

模板代码 (loop.index)
{% for page in data.tickets.pages %}
  {{loop.index}}: {{ page }}
{% endfor %}

输出
1:1
2:2
3:3

模板代码 (loop.index0)
{% for page in data.tickets.pages %}
  {{loop.index0}}: {{ page }}
{% endfor %}

输出
0:1
1:2
2:3

检查 nunjucks docs
  • loop.index:循环的当前迭代(1 索引)
  • loop.index0:循环的当前迭代(0索引)
  • loop.revindex:直到结束的迭代次数(1 个索引)
  • loop.revindex0:直到结束的迭代次数(基于0)
  • loop.first: bool 值,指示第一次迭代
  • loop.last: bool 值,指示最后一次迭代
  • loop.length:项目总数
  • 关于for-loop - 无法使用 Nunjucks for 循环获取数组中项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845875/

    相关文章:

    java - 模板引擎应该渲染到输出流还是返回字符串

    javascript - 部分包含 mustache.js 中的路径

    node.js - 模板路径中的通配符在带有 gulp 的 nunjucks 中不起作用

    Python,将迭代函数变成递归函数

    Javascript 二维数组获取每个元素

    php - for vs foreach vs while 在 php 中遍历数组哪个更快

    for-loop - 尽管我们已经有了 "for loop"或反之亦然,为什么还要创建 "while loop"?

    templating - 哪些模板语言将 HTML *输出为节点树*?

    node.js - JSLint 和 ESLint 问题(括号)

    Nunjucks 检查对象或字符串