JSON根据共同字段分组

转自:https://blog.csdn.net/lamyuqingcsdn/article/details/51123177
目标

     [
        {"id":"1001","name":"值1","value":"111"},
        {"id":"1001","name":"值1","value":"11111"},
        {"id":"1002","name":"值2","value":"25462"},
        {"id":"1002","name":"值2","value":"23131"},
        {"id":"1002","name":"值2","value":"2315432"},
        {"id":"1003","name":"值3","value":"333333"}
      ]

转化成

    [
{
    "id": "1001",
    "name": "值1",
    "data": [
        {"id": "1001", "name": "值1", "value": "111"},
        { "id": "1001", "name": "值1", "value": "11111"}
    ]
},
{
    "id": "1002",
    "name": "值2",
    "data": [
        { "id": "1002",  "name": "值2", "value": "25462" },
        { "id": "1002", "name": "值2", "value": "23131"},
        {"id": "1002", "name": "值2","value": "2315432" }
    ]
},
{
    "id": "1003",
    "name": "值3",
    "data": [
        {"id": "1003", "name": "值3", "value": "333333" }
    ]
}
    ]

js

    var arr = [
        {"id":"1001","name":"值1","value":"111"},
        {"id":"1001","name":"值1","value":"11111"},
        {"id":"1002","name":"值2","value":"25462"},
        {"id":"1002","name":"值2","value":"23131"},
        {"id":"1002","name":"值2","value":"2315432"},
        {"id":"1003","name":"值3","value":"333333"}
    ];

    var map = {},
        dest = [];
    for(var i = 0; i < arr.length; i++){
        var ai = arr[i];
        if(!map[ai.id]){
            dest.push({
                id: ai.id,
                name: ai.name,
                data: [ai]
            });
            map[ai.id] = ai;
        }else{
            for(var j = 0; j < dest.length; j++){
                var dj = dest[j];
                if(dj.id == ai.id){
                    dj.data.push(ai);
                    break;
                }
            }
        }
    }

    console.log(dest);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容