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是。