typescript的数组类似:
'let list = [{名称:'sdd',ident:'Fe',groupId:3},{名称:'sss',ident:'Cu',groupId:0},{名称:'1050 AJ ',ident:'Mn',groupId:3},{名称:'X332.0 AC',ident:'V',groupId:3},{name:'X4002',ident:'Mm',groupId:0 },{名称:'X400s',标识:'cn',groupId:4},{名称:'X4002 z',标识:'xx',groupId:4},];'
使用Angular和html:我想将它们与groupId字段分组,并以list的名字显示在fieldset中,如果groupId == 0,它应该具有自己的字段集,如:
sdd:
身份:“铁”
身份:“ Mn”
身份:“ V”
==============
sss:
身份:“铜”
==============
X4002:
ident:'Mm
==============
X400s:
ident:“ cn”
身份:“ xx”
==============
答案 0 :(得分:0)
您可以创建一个新对象来完成您要实现的目标,然后可以根据需要使用Angular中的循环显示此对象。
let list = [ { name: 'sdd', ident: 'Fe', groupId: 3 },
{ name: 'sss', ident: 'Cu', groupId : 0 },
{ name: '1050 AJ', ident: 'Mn', groupId: 3 },
{ name: 'X332.0 AC', ident: 'V', groupId: 3 },
{ name: 'X4002', ident: 'Mm', groupId : 0 },
{ name: 'X400s', ident: 'cn', groupId : 4 },
{ name: 'X4002 z', ident: 'xx', groupId : 4 }, ];
const formattedlist = {};
formattedlist[0] = [];
for(let i=0;i<list.length;i++){
let obj = {};
if(list[i].groupId===0){
obj[list[i].name] = {ident: list[i].ident};
formattedlist[0].push(obj);
}
else{
if(formattedlist[list[i].groupId] === undefined){
formattedlist[list[i].groupId] = {};
formattedlist[list[i].groupId].name = list[i].name;
formattedlist[list[i].groupId].ident = [list[i].ident];
}
else{
formattedlist[list[i].groupId]['ident'].push(list[i].ident);
}
}
}
console.log(formattedlist);