首页 > 解决方案 > 如何在 Javascript/AngularJS 中按 Json 对象分组

问题描述

我有一个 json 对象,它有一个 zip 条目。在下面的 json 对象中,“Zipcode”键下有 zip 条目,基本上我想按 Zip 代码对其进行分组,以显示哪个邮政编码属于所有区域 ID。

例如 - 邮政编码 7 属于 zoneIds 12005,12008,12006,12009,邮政编码 12 属于 zoneIds 12004,11001。最终目标是在一些错误消息中显示这一点。

var Json = [{
City: "ABC",
ZipCode: "7",
ZoneID: 12008,
ZoneName: "test_TP41"},
{City: "ABC",
ZipCode: "7",
ZoneID: 12005,
ZoneName: "test_TP4"
},
{City: "ABC",
ZipCode: "7",
ZoneID: 12007,
ZoneName: "test_TP456"},
{City: "ABC",
ZipCode: "7",
ZoneID: 12006,
ZoneName: "test_TP5"},
{City: "ABC",
ZipCode: "7",
ZoneID: 12009,
ZoneName: "testgrp16"},
{City: "CDE",
ZipCode: "12",
ZoneID: 12004,
ZoneName: "test_TP2"},
{City: "CDE",
ZipCode: "12",
ZoneID: 11001,
ZoneName: "test 20201"
}]

标签: javascriptjsonangularjs

解决方案


您可以按照此答案 进行进一步分类

使用 ES5+ ,

var grouped = _.mapValues(_.groupBy(Json , 'ZipCode'),
                          singleObject=> singleObject.map(item=> _.omit(Json , 'ZipCode')));

console.log(grouped);

希望这会对你有所帮助


推荐阅读