本文介绍了用树枝订购一个对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要订购带有内部属性的对象列表.

我收到一个这样的对象列表:{ 比赛:意大利 - 德国",日期:27/01/2019",比赛:世界杯"}{ 比赛:里尔 - 巴黎",日期:23/01/2019",比赛:法国杯"}{比赛:om - psg",日期:13/01/2019",比赛:coupe de france"}{ 比赛:俄罗斯 - 波兰",日期:25/01/2019",比赛:世界杯"}

我不知道从哪里开始,但我需要循环匹配:{% for match in matches %}

我想获取这个列表:

法国杯:

  • om - psg
  • 里尔-巴黎

世界杯:

  • 意大利德国
  • 俄罗斯 - 波兰

解决方案
{% set data = [{国家":法国",'匹配':'G',},{'国家' : '比利时','匹配':'F',},{国家":法国",'匹配':'E',},{'国家' : '德国','匹配':'D',},{'国家' : '德国','匹配':'C',},{国家":法国",'匹配':'B',},{国家":意大利",'匹配':'A',},] %}{% 设置排序 = [] %}{% for row in data %}{% if not ((row.country) in sorted|keys) %}{% set sorted = sorted|merge({ (row.country) : [], }) %}{% endif %}{% set sorted = sorted|merge({(row.country): (sorted[(row.country)]|merge([ row.match, ])|sort)}) %}{% endfor %}{% 代表国家,值排序 %}{{ 国家 }}{% 代表价值 %}- {{ 价值 }}{% endfor %}----------------------------{% endfor %}

演示

I need to order a list of objects i receive with an inner property.

I receive a list of objects like that :
{ match: "italy - germany", date: "27/01/2019", competion: "World cup" }
{ match: "lille - paris", date: "23/01/2019", competion: "coupe de france" }
{ match: "om - psg", date: "13/01/2019", competion: "coupe de france" }
{ match: "russia - poland", date: "25/01/2019", competion: "World cup" }

I don't know where to start but i need to loop over matches: {% for match in matches %}

I want to obtain this list:

coupe de france :

  • om - psg
  • lille -paris

world cup :

  • italy germany
  • russia - poland

解决方案
{% set data = [
    {
        'country' : 'france',
        'match': 'G',
    },
    {
        'country' : 'belgium',
        'match': 'F',
    },
    {
        'country' : 'france',
        'match': 'E',
    },
        {
        'country' : 'germany',
        'match': 'D',
    },
    {
        'country' : 'germany',
        'match': 'C',
    },
        {
        'country' : 'france',
        'match': 'B',
    },
    {
        'country' : 'italy',
        'match': 'A',
    },
] %}


{% set sorted = [] %}
{% for row in data %}
    {% if not ((row.country) in sorted|keys) %}{% set sorted = sorted|merge({ (row.country) : [], }) %}{% endif %}
    {% set sorted = sorted|merge({(row.country): (sorted[(row.country)]|merge([ row.match, ])|sort)}) %}
{% endfor %}

{% for country, values in sorted %}
    {{ country }}
    {% for value in values %}
        - {{ value }}
    {% endfor %}
----------------------------
{% endfor %}

demo

这篇关于用树枝订购一个对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-07 17:35