Angular7 /显示按特定字段分组的数组中的字段集列表

时间:2019-07-06 16:00:40

标签: html angular typescript

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”

==============

1 个答案:

答案 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);