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

Using Jekyll, how do you alter an array's contents using a for loop?

假设我的范围内有一个数组 thingy.foo = ['abc', 'def']

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

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

我正在做的项目有点无关紧要,我遇到问题的部分是更新数组中的项目。代码编译并运行。在循环中,我可以确认 "lookup" 部分有效(如果我将它分配给 t 并检查 t 然后我得到一个查找值,但 thingy.foo[0] 仍然是原始值)。

是否可以在 Jekyll 中 update/overwrite 数组?

(这是为了在 GitHub 页面上使用,所以我不能使用自定义插件)。

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

{% 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 的更改项目列表。