web-dev-qa-db-ja.com

Liquidのforループで配列を作成するにはどうすればよいですか?

Liquid構文を使用してオブジェクトのリストから配列を作成しようとしています。

{% for operation in menuItems %}
      {% assign words1 = operation.Title | split: '_' %}
      {% assign controllerName = words1 | first %}
      {% assign controllersTmp = controllersTmp | append: '_' | append: controllerName %}
{% endfor %}

配列を取得するためにcontrollersTmpを分割したいのですが、この時点でcontrollersTmpは空です。

何か助け?

10

新しい空の配列controllersconcat を直接作成して、回避策 split:''を使用してcontrollerNameを配列に変換できます。 。結果は、余分な文字列操作なしで、直接配列になります。

{% assign controllers = '' | split: '' %}
{% for operation in menuItems %}
    {% assign controllerName = operation.Title | split: '_' | first | split: '' %}
    {% assign controllers = controllers | concat: controllerName %}
{% endfor %}
20
jrbedard

変数controllersTmpを初期化する必要があります:

 {% assign controllersTmp = '' %}
0