如何删除嵌套for循环中最后一个对象的逗号?

问题描述

我想从嵌套for循环的最后一个对象中删除逗号:

[{% for item1 in articles.results.entities %}
    {% for item2 in articles1.results.entities %}
        {% if item1.kNowledgearticleid != item2.kNowledgearticleid %}
            {
            "Id":"{{item1.kNowledgearticleid}}","Title":"{{item1.title}}","Articlepublicumber":"{{item1.articlepublicnumber}}","Description":"{{item1.description}}"            
            }
           
        {% endif %}       
       
    {% endfor %}
    {% unless forloop.last %},{% endunless %}
{% endfor %}]

但这是行不通的;它给我重复的逗号:

[
  {
    "Id": "ddcb41c6-1f33-ea11-a813-000d3a3be5cf","Title": "1 Test1","Articlepublicumber": "KA-01992","Description": "Test1"
  },{
    "Id": "9564dc21-9df6-414b-ab99-da4ba534fd83","Title": "Test2","Articlepublicumber": "KA-03363","Description": "Test2"
  }
]

解决方法

关于Shopify液体代码段discussed here的相同问题,这是常见情况,可以用任何语言进行串联。

在每次接受的迭代中,添加一个逗号,然后添加“需要的项目”。除非这是第一个被接受的迭代,否则请不要添加逗号。

我只是设法修改您的代码,但要对它进行测试。但是你的想法正确吗?

[{% assign list_items = "" %}
  {% for item1 in articles.results.entities %}
    {% for item2 in articles1.results.entities %}
        {% if item1.knowledgearticleid != item2.knowledgearticleid %}

         {% unless list_items == "" %}

          {% assign list_items = "zzz" %}

            {
            "Id":"{{item1.knowledgearticleid}}","Title":"{{item1.title}}","Articlepublicumber":"{{item1.articlepublicnumber}}","Description":"{{item1.description}}"            
            }
          {% endunless %}

          {% unless list_items == "zzz" %},{
            "Id":"{{item1.knowledgearticleid}}","Description":"{{item1.description}}"            
            }
          {% endunless %}

        {% endif %}       
       
    {% endfor %}

{% endfor %}]