对不起,如果以前曾经问过,但我找不到一个很好的例子,说明我想要完成的事情。也许我只是不寻找正确的事情。如果在某处有解释,请纠正我。无论如何...
我有像这样结构的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"}
]}
]}
我将如何使用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}));