Javascript 如何基于服务器使用groupBy数据并在ag grid中显示它-angular
如何根据作为对象键的服务器名称对数据进行分组 代码如下:Javascript 如何基于服务器使用groupBy数据并在ag grid中显示它-angular,javascript,angular,typescript,Javascript,Angular,Typescript,如何根据作为对象键的服务器名称对数据进行分组 代码如下: rowData = [ { server: "Server 1", ping: "10 ms", dl: "50Mbit/s", ul: "50Mbit/s", ispcon: true, dateStart: "2019-10-12 09:00:00", datteEnd:
rowData = [
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 1",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 2",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
server: "Server 2",
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
}
];
输出应该是这样的
[
{
server: "Server 1",
data: [
{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
}
]
},
{
server: "Server 2",
data: [
{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
},
{
ping: "10 ms",
dl: "50Mbit/s",
ul: "50Mbit/s",
ispcon: true,
dateStart: "2019-10-12 09:00:00",
datteEnd: "2019-10-12 09:05:000"
}
]
}
]
我想要的是基于服务器对数据进行分组,例如,当数据和it服务器为“服务器1”时,它应该将具有服务器“服务器1”的数据分组
以及如何在ag网格中显示它(主细节)。
输出应该是这样的。
提前感谢解决方案:
const rowData=[
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器1”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器2”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
},
{
服务器:“服务器2”,
平:“10毫秒”,
dl:“50Mbit/s”,
ul:“50Mbit/s”,
是的,
日期开始:“2019-10-12 09:00:00”,
日期:“2019-10-12 09:05:000”
}
];
const result=rowData.reduce((附件,项目)=>{
if(acc.findIndex(a=>a.server==item.server)=-1){
acc.push({server:item.server,数据:[]})
}
const currentIndex=acc.findIndex(a=>a.server===item.server)
删除项['server']
acc[currentIndex].data.push(项目)
返回acc
}, [])
console.log(result)
这有一个简单的js香草解决方案,为什么你要求angular?@ChristianCarrillo在ag Grid中显示数据你喜欢使用像lodash这样的库,还是需要分组算法?Lodash使这种收集操作变得轻而易举,并使代码可读和干净。@使用Lodash groupBy时,seesharper?@seesharper是。