【问题标题】:Jekyll - split an array into subarrays given n itemsJekyll - 将数组拆分为给定 n 项的子数组
【发布时间】:2017-04-20 21:09:47
【问题描述】:

这个问题已经在javascriptruby 的上下文中被这个社区解决了,但是你如何使用 Jekyll / Liquid 模板来完成同样的事情呢?假设是这样的:

{% assign subarrays = array | split_items_by: 3 %}

【问题讨论】:

  • AFAIK 无法在 Liquid 中创建多维数组,是否可以通过 3 块来处理数组?

标签: arrays jekyll liquid


【解决方案1】:

详细代码:

{% assign subArraySize = 3 %}

{% assign myArray = "one,two,three,four,five,six,seven" | split: "," %}
myArray = {{ myArray | inspect }}

{% assign multiArray = "" | split: "/" %}
multiArray = {{ multiArray | inspect }}

{% for element in myArray %}
  looping in myArray - forloop.index = {{ forloop.index }}

  {% assign reminder = forloop.index | modulo: subArraySize %}
  reminder : {{ reminder | inspect }}

  {% if reminder == 1 %}
  create a new empty sub array
  {% assign subArray = "" | split: "/" %}
  subArray = {{ subArray | inspect }}
  {% endif %}

  push current element in subArray
  {% assign subArray = subArray | push: element %}
  subArray = {{ subArray | inspect }}

  {% if reminder == 0 or forloop.last %}
  push subArray in multiArray if subarray length is
    {% assign multiArray = multiArray | push: subArray %}
  multiArray = {{ multiArray | inspect }}
  {% endif %}
{% endfor %}

{% for subArray in multiArray %}
 subArray :{{ subArray | inspect }}
{% endfor %}

如果你已经有 ruby​​ 代码可用,你可以写一个tag plugin

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2012-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多