【问题标题】:How to Display key labels and values in Jekyll for loop data that has been grouped如何在 Jekyll 中为已分组的循环数据显示键标签和值
【发布时间】:2018-02-16 03:19:49
【问题描述】:

我得到了以下工作:

{% assign cars = site.data.inventory %}
{% for item in cars %}
{{item}}
{% endfor %}

结果看起来像是一堆乱七八糟的密钥对。

{"brand"=>"Toyota", "model"=>"Celica"}

等等

一切都好。然后我扔了一个弧线球。

{% assign cars = site.data.inventory | group_by:"model" %}

现在结果看起来不同了,这是有道理的,但它会引起混乱。

{"name"=>"Celica","items"=>[{"brand"=>"Toyota", "model"=>"Celica"}], "size"=>1}

这成为一个挑战:

我想遍历 2nd 结果中的“项目”,只提取关键标签。如果我删除分组,我可以这样做:

{% for e in cars %}
{% if forloop.first == true %}
  {% for item in e %}
    {{item[0]}}
  {% endfor %}
{% endif %}
  {% for item in e %}
    {{item[1]}}
  {% endfor %}
{% endfor %}

像魅力一样工作。第一个结果是标签,其余结果显示数据。制作列标题的简单方法。

但是,如果我在分配中添加 group_by,我的 {{item[0]}} 变为“名称”、“项目”、“尺寸”,而不是“品牌”、“型号”,其中项目成为整个列出第一个示例中的 {{item}}。

如何遍历粗体的值?

[{"brand"=>"Toyota", "model"=>"Celica"}] 分组时?

【问题讨论】:

  • 您能否将您想要获得的确切输出添加到您的问题中。

标签: loops for-loop jekyll


【解决方案1】:

我认为这就是你想要做的:

{% assign models = site.data.inventory | group_by:"model" %}

<table>
{% for model in models %}

  {% if forloop.first == true %}
  <tr>
    {% for item in model.items.first %}
      <th>{{ item[0] }}</th>
    {% endfor %}
  </tr>
  {% endif %}

  {% for car in model.items %}
  <tr>
    {% for field in car %}
      <td>{{ field[1] }}</td>
    {% endfor %}
  </tr>
  {% endfor %}

{% endfor %}
</table>

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多