Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 json数据分组_Javascript_Jquery_Grouping_Distinct - Fatal编程技术网

Javascript json数据分组

Javascript json数据分组,javascript,jquery,grouping,distinct,Javascript,Jquery,Grouping,Distinct,如果以前有人问过这个问题,我很抱歉,但是我找不到一个很好的例子来说明我正在努力实现的目标。也许我只是没有在寻找正确的东西。如果有什么解释,请纠正我。无论如何 我有这样的JSON数据结构 {"Result":[ {"Level":"ML","TeamName":"Team 1","League":"League 1"}, {"Level":"ML","TeamName":"Team 2","League":"League 2"}, {"Level":"ML","TeamNa

如果以前有人问过这个问题,我很抱歉,但是我找不到一个很好的例子来说明我正在努力实现的目标。也许我只是没有在寻找正确的东西。如果有什么解释,请纠正我。无论如何

我有这样的JSON数据结构

{"Result":[
    {"Level":"ML","TeamName":"Team 1","League":"League 1"},
    {"Level":"ML","TeamName":"Team 2","League":"League 2"},
    {"Level":"ML","TeamName":"Team 3","League":"League 3"},
    {"Level":"3A","TeamName":"Team 4","League":"League 1"},
    {"Level":"3A","TeamName":"Team 5","League":"League 2"},
    {"Level":"3A","TeamName":"Team 6","League":"League 3"},
    {"Level":"2A","TeamName":"Team 7","League":"League 1"},
    {"Level":"2A","TeamName":"Team 8","League":"League 2"},
    {"Level":"2A","TeamName":"Team 9","League":"League 3"},
]}
{"Result":[
    {"ML":[
        {"TeamName":"Team 1","League":"League 1"},
        {"TeamName":"Team 2","League":"League 2"},
        {"TeamName":"Team 3","League":"League 3"}
    ]},
    {"3A":[
        {"TeamName":"Team 4","League":"League 1"},
        {"TeamName":"Team 5","League":"League 2"},
        {"TeamName":"Team 6","League":"League 3"}
    ]},
    {"2A":[
        {"TeamName":"Team 7","League":"League 1"},
        {"TeamName":"Team 8","League":"League 2"},
        {"TeamName":"Team 9","League":"League 3"}
    ]}
]}
我想分组,或者像这样重组它

{"Result":[
    {"Level":"ML","TeamName":"Team 1","League":"League 1"},
    {"Level":"ML","TeamName":"Team 2","League":"League 2"},
    {"Level":"ML","TeamName":"Team 3","League":"League 3"},
    {"Level":"3A","TeamName":"Team 4","League":"League 1"},
    {"Level":"3A","TeamName":"Team 5","League":"League 2"},
    {"Level":"3A","TeamName":"Team 6","League":"League 3"},
    {"Level":"2A","TeamName":"Team 7","League":"League 1"},
    {"Level":"2A","TeamName":"Team 8","League":"League 2"},
    {"Level":"2A","TeamName":"Team 9","League":"League 3"},
]}
{"Result":[
    {"ML":[
        {"TeamName":"Team 1","League":"League 1"},
        {"TeamName":"Team 2","League":"League 2"},
        {"TeamName":"Team 3","League":"League 3"}
    ]},
    {"3A":[
        {"TeamName":"Team 4","League":"League 1"},
        {"TeamName":"Team 5","League":"League 2"},
        {"TeamName":"Team 6","League":"League 3"}
    ]},
    {"2A":[
        {"TeamName":"Team 7","League":"League 1"},
        {"TeamName":"Team 8","League":"League 2"},
        {"TeamName":"Team 9","League":"League 3"}
    ]}
]}

如何使用Javascript/jQuery实现这一点?很遗憾,我无法编辑服务器发送给我的内容。

只需在对象中跟踪所有内容:

let groups = Object.create(null);

data.forEach(item => {
    if (!groups[item.Level]) {
        groups[item.Level] = [];
    }

    groups[item.Level].push({
        TeamName: item.TeamName,
        League: item.League
    });
});

let result =
    Object.entries(groups)
        .map(([k, v]) => ({[k]: v}));

这是一个小问题……将JSON转换为一个对象,将相关部分复制到另一个对象,然后将第二个对象转换为JSON。你可以做到。@JonathanM最后一步可能根本就没有必要,因为假设他们在某个时候真的想对这个对象做点什么。老实说,我还没怎么试过。我在想该怎么做。我不知道是否必须为此使用循环和$.grep()的组合。任何指导或帮助都很好。您的for循环(和下一行)是否可以简化为
for(数据中的项)
?@TimothyAaron:不,JavaScript的
for in
循环迭代键,而不是值,您不应该使用它来迭代数组。因此,我们仍在等待
的广泛采用,因为每个
:DHe说他正在使用jQuery,所以您可以使用$。each。@Julian:好的,谢谢;我要补充一点。那太好了……非常感谢你的一些想法。