使用jQuery按JSON数组分组

Dee*_*ena 2 javascript arrays jquery grouping

我有一组JSON数组,我希望结果按"Id"列分组.我不会使用underscore.js,因为这不能在我们的项目中使用.唯一的选择是使用jQuery.我的源数组和预期结果如下.

var origObj = [{ "Id": "1", "name": "xxx", "age": "22" },
               { "Id": "1", "name": "yyy", "age": "15" },
               { "Id": "5", "name": "zzz", "age": "59" }]

var output = [{"1": [{ "Id": "1", "name": "xxx", "age": "22" },
                     { "Id": "1", "name": "yyy", "age": "15" }],
               "5": [{ "Id": "5", "name": "zzz", "age": "59" }]}]
Run Code Online (Sandbox Code Playgroud)

met*_*eor 10

您可以使用Array.prototype.reduce来完成此操作.查看这篇文章了解更多详情/sf/answers/1607351091/扩展到这就是你需要的

var data= [{ "Id": "1", "name": "xxx", "age": "22" },
        { "Id": "1", "name": "yyy", "age": "15" },
        { "Id": "5", "name": "zzz", "age": "59" }];
        console.log(data.reduce(function(result, current) {
            result[current.Id] = result[current.Id] || [];
            result[current.Id].push(current);
            return result;
        }, {}));
Run Code Online (Sandbox Code Playgroud)