说我的作用域中有一个数组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上使用的,所以我不能使用自定义插件)。
答案 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
的已更改项目的列表。