使用Jekyll,如何使用for循环更改数组的内容?

时间:2019-05-19 21:00:43

标签: jekyll github-pages liquid

说我的作用域中有一个数组thingy.foo = ['abc', 'def']

我的目标是能够遍历thingy.foo中的所有项目并对其应用一些条件逻辑,从而覆盖数组中的现有项目...类似这样的东西:

{% for item in thingy.foo %}
  {% assign thingy.foo[forloop.index0] = site.data.lookups[item] | default: item %}
{% endfor %}

我正在做的事情与项目无关,我遇到的问题是更新数组中的项目。该代码编译并运行。在循环中,我可以确认“查找”部分起作用(如果我将其分配给t并检查t则得到一个查找值,但是thingy.foo[0]仍然是原始值值)。

是否可以在Jekyll中更新/覆盖阵列?

(这是打算在GitHub Pages上使用的,所以我不能使用自定义插件)。

1 个答案:

答案 0 :(得分:0)

看起来您无法对现有数组进行变异...但是您可以遍历初始数组并将项变异为新数组,如下所示:

{% assign newArray = '' | split: '' %}
{% for item in thingy.foo %}
  {% assign newItem = site.data.lookups[item] | default: item %}
  {% assign newArray = newArray | push: newItem %}
{% endfor %}

newArray现在包含来自thingy.foo的已更改项目的列表。