Javascript json数据分组 [英] Javascript json data grouping

查看:85
本文介绍了Javascript json数据分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

很抱歉,如果以前曾经问过这个,但我找不到一个很好的例子,说明我想要完成的事情。也许我只是不寻找正确的事情。如果在某处有解释,请纠正我。无论如何...

Sorry if this has been asked before, but I couldn't find a good example of what I'm trying to accomplish. Maybe I'm just not searching for the right thing. Please correct me if there's an explanation of this somewhere. Anyway...

我的JSON数据结构如此......

I have JSON data structured like so...

{"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"},
]}

我想分组或重组它......

I would like to group, or restructure it like so...

{"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实现这一目标?不幸的是我无法编辑服务器发送给我的内容。

How would I accomplish this with Javascript/jQuery? Unfortunately I can't edit what the server is sending me.

推荐答案

只需在对象中跟踪它:



Just keep track of it all in an object:

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}));

这篇关于Javascript json数据分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆