【发布时间】:2019-03-19 21:42:07
【问题描述】:
我正在尝试遍历作为变量传递给包含的数组,然后检查该变量是否与某些 YAML 匹配——如果匹配,我想打印结果。我可以使用下面的代码手动执行此操作,但是我需要一个可以在给定更大数组的情况下工作的解决方案。
首先,我从页面传递这个信息:
<!--- Pass these variables into include.html --->
{% assign var_array = "D" %}
{% assign data = "object" %}
{% include include.html %}
我想消除所有 eslif 并替换为将循环整个数组的东西。
<!--- include.html --->
{% assign data = site.data.sheet.[data].last.items %}
{% assign sorted = var_array | split:"," %}
{% for item in data %}
{% if item.foo == sorted[0] %}
<p>{{ item.foo }}</p>
{% elsif item.foo == sorted[1] %}
<p>{{ item.foo }}</p>
{% elsif item.foo == sorted[2] %}
<p>{{ item.foo }}</p>
{% elsif item.foo == sorted[3] %}
<p>{{ item.foo }}</p>
{% endif %}
{% endfor %}
这是 YAML 数据:
<!--- sheet.yaml --->
object:
- items:
- foo: 'A'
- bar: 'text'
- items:
- foo: 'B'
bar: 'text'
- items:
- foo: 'C'
bar: 'text'
- items:
- foo: 'D'
bar: 'text'
这是所需的输出:
<!-- Desired Output --->
<p>D</p>
【问题讨论】: