Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按多个值分组对象并合并重复项_Javascript_Arrays_Javascript Objects - Fatal编程技术网

Javascript 按多个值分组对象并合并重复项

Javascript 按多个值分组对象并合并重复项,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一组数据,如下所示: { "data": [ { "id": "20200722_3", "eventDate": "2020-07-22T00:00:00", "eventName": "Football", "eventDetails": [ "Men's First Round (2 matches)" ], "eventVenue": "Venue A" }, {

我有一组数据,如下所示:

{
  "data": [
    {
      "id": "20200722_3",
      "eventDate": "2020-07-22T00:00:00",
      "eventName": "Football",
      "eventDetails": [
        "Men's First Round (2 matches)"
      ],
      "eventVenue": "Venue A"
    },
    {
      "id": "20200722_1",
      "eventDate": "2020-07-22T00:00:00",
      "eventName": "Football",
      "eventDetails": [
        "Men's First Round (2 matches)"
      ],
      "eventVenue": "Venue B"
    }
  ]
}
[{
    "label": "2020-07-23T00:00:00",
    "groups": [{
        "label": "Football",
        "groups": [{
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue A",
              "groups": [
                "Object"
              ]
            }]
          },
          {
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue B",
              "groups": [
                "Object"
              ]
            }]
          }
        }]
    }]
}]
[{
    "label": "2020-07-23T00:00:00",
    "groups": [{
        "label": "Football",
        "groups": [{
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue A",
              "groups": [
                "Object"
              ]
            },
            {
              "label": "Venue B",
              "groups": [
                "Object"
              ]
            }]
        }]
    }]
}]
现在我想按多个属性对数据进行分组。例如,通过
eventDate
eventName
eventDetails
eventvention
。我使用以下引用的代码完成了此操作:

您可以看到,对于上面的输出,有两个单独的“组”,其标签为“男子第一轮(2场比赛)”。我想知道如何组合这些具有重复值的对象?我正在寻找这样的输出:

{
  "data": [
    {
      "id": "20200722_3",
      "eventDate": "2020-07-22T00:00:00",
      "eventName": "Football",
      "eventDetails": [
        "Men's First Round (2 matches)"
      ],
      "eventVenue": "Venue A"
    },
    {
      "id": "20200722_1",
      "eventDate": "2020-07-22T00:00:00",
      "eventName": "Football",
      "eventDetails": [
        "Men's First Round (2 matches)"
      ],
      "eventVenue": "Venue B"
    }
  ]
}
[{
    "label": "2020-07-23T00:00:00",
    "groups": [{
        "label": "Football",
        "groups": [{
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue A",
              "groups": [
                "Object"
              ]
            }]
          },
          {
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue B",
              "groups": [
                "Object"
              ]
            }]
          }
        }]
    }]
}]
[{
    "label": "2020-07-23T00:00:00",
    "groups": [{
        "label": "Football",
        "groups": [{
            "label": [
              "Men's First Round (2 matches)"
            ],
            "groups": [{
              "label": "Venue A",
              "groups": [
                "Object"
              ]
            },
            {
              "label": "Venue B",
              "groups": [
                "Object"
              ]
            }]
        }]
    }]
}]

任何帮助都将不胜感激。

我将为那些好奇的人分享我的答案。 出于我的需要,我知道如果带有
eventName
的数组只包含1个属性,那么它可能是重复的。为了解决这个问题,我将只有1个值的数组转换为字符串:

if (ele[attr] && ele[attr].length === 1) {
  var value = ele[attr].toString();
} else {
  var value = ele[attr];
}