Javascript 如何在Angular中按服务器分组
代码如下: 列表.组件.ts 如何对服务器1进行分组 输出应该是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
{
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);