Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular中按服务器分组_Javascript_Angular - Fatal编程技术网

Javascript 如何在Angular中按服务器分组

Javascript 如何在Angular中按服务器分组,javascript,angular,Javascript,Angular,代码如下: 列表.组件.ts 如何对服务器1进行分组 输出应该是 { server: 'Server 1', data: [ { "id": 19, "dl": "35.88 Mbit/s", "ul": "46.76 Mbit/s", }, { "id": 30, "dl": "45.06 Mbi

代码如下:

列表.组件.ts

如何对服务器1进行分组

输出应该是

{
   server: 'Server 1',
   data: [
{
              "id": 19,
              "dl": "35.88 Mbit/s",
              "ul": "46.76 Mbit/s",
            },
            {
              "id": 30,
              "dl": "45.06 Mbit/s",
              "ul": "48.25 Mbit/s",
            },
            {
              "id": 26,
              "dl": "47.96 Mbit/s",
              "ul": "47.89 Mbit/s",
            }
]
}
您可以使用按
server
分组,并使用语法获取
其他
对象字段:

let data=[{
“id”:19,
“服务器”:“数据1”,
“dl”:“35.88 Mbit/s”,
“ul”:“46.76 Mbit/s”,
},
{
“id”:30,
“服务器”:“数据1”,
“dl”:“45.06 Mbit/s”,
“ul”:“48.25 Mbit/s”,
},
{
“id”:26,
“服务器”:“数据1”,
“dl”:“47.96 Mbit/s”,
“ul”:“47.89Mbit/s”,
} ]
让结果=数据。减少((状态,当前)=>{
让{server,…others}=current;
如果(状态[服务器]){
状态[服务器]。推送(其他);
}否则{
状态[服务器]=[其他];
}
返回状态;
}, {});

控制台日志(结果)您还可以使用forEach对数据进行分组

let data = [
  {
    "id": 19,
    "server": "Data1",
    "dl": "35.88 Mbit/s",
    "ul": "46.76 Mbit/s",
  },
  {
    "id": 30,
    "server": "Data1",
    "dl": "45.06 Mbit/s",
    "ul": "48.25 Mbit/s",
  },
  {
    "id": 26,
    "server": "Data1",
    "dl": "47.96 Mbit/s",
    "ul": "47.89 Mbit/s",
  },
  {
    "id": 36,
    "server": "Data2",
    "dl": "41.98 Mbit/s",
    "ul": "41.82 Mbit/s",
  }
];

const groupedArray = (arr) => {
  let newArray = {};
  data.forEach(obj => {
    if(newArray[obj['server']] == undefined){
      newArray[obj['server']] = [ obj ];
    } else{
      newArray[obj['server']].push(obj);
    }
  });
  return newArray;
}

let newData = groupedArray(data);
console.log(newData);

我想我不明白你的问题。你所说的组是什么意思?我不知道你为什么不使用像这样的“lodash”lib u.groupBy(数据,“服务器”)。
let data = [
  {
    "id": 19,
    "server": "Data1",
    "dl": "35.88 Mbit/s",
    "ul": "46.76 Mbit/s",
  },
  {
    "id": 30,
    "server": "Data1",
    "dl": "45.06 Mbit/s",
    "ul": "48.25 Mbit/s",
  },
  {
    "id": 26,
    "server": "Data1",
    "dl": "47.96 Mbit/s",
    "ul": "47.89 Mbit/s",
  },
  {
    "id": 36,
    "server": "Data2",
    "dl": "41.98 Mbit/s",
    "ul": "41.82 Mbit/s",
  }
];

const groupedArray = (arr) => {
  let newArray = {};
  data.forEach(obj => {
    if(newArray[obj['server']] == undefined){
      newArray[obj['server']] = [ obj ];
    } else{
      newArray[obj['server']].push(obj);
    }
  });
  return newArray;
}

let newData = groupedArray(data);
console.log(newData);