用什么Jekyll语法来过滤前面的key:value对?

用什么Jekyll语法来过滤前面的key:value对?,jekyll,liquid,Jekyll,Liquid,在我的Jekyll站点中,我有一个页面,在前面存储一组数据,如下所示: --- layout: page title: MyTitle array: - key1: value1 - key2: value2 --- 我想在模板中执行的操作:给定一个keyX,从数组中获取valueX 我找到了一种访问阵列的方法: {% assign subpage = site.pages | where: 'title', 'MyTitle' %} {% assign array = subpage

在我的Jekyll站点中,我有一个页面,在前面存储一组数据,如下所示:

---
layout: page
title: MyTitle
array:
  - key1: value1
  - key2: value2
---
我想在模板中执行的操作:给定一个keyX,从数组中获取valueX

我找到了一种访问阵列的方法:

{% assign subpage = site.pages | where: 'title', 'MyTitle' %}
{% assign array = subpage[0].array %}
现在我需要编写的查询是:“从数组中提取与keyX匹配的值”


有没有一种方法可以在不需要循环的情况下搜索整个数组?我能找到的所有示例都基于一维数组…

同时,我发现了以下解决方法:

{%用于数组%中的valueList}
{valueList%中valuePair的%
{%if valuePair[0]==“key1”%}
{%assign value=valuePair[1]}
{%endif%}
{%endfor%}
{%endfor%}

您的数组是非标准化对象的数组(它们没有相同的键)

返回

[{"key1"=>"value1"}, {"key2"=>"value2"}]
这里搜索的唯一方法是遍历所有数组项

如果将数组重构为对象,则可以从键中获取值

---
[...]
object:
  key1: value1
  key2: value2
...
例如:

{% assign searched = "key1" %}
{{ page.object[searched] }}

太棒了,我不知道“对象”语法!使我的代码更具可读性。
{% assign searched = "key1" %}
{{ page.object[searched] }}