从打字稿/角度数组的对象数组中读取数据

时间:2021-06-03 16:34:46

标签: json angular typescript

我正在调用我的 api,它返回如下对象数组。如何访问如下 json 中的数组对象数组我想使用 typsecript 找出当 EmpId 为 102 时 roleid =2 的角色。

0- {
  EmpId: 101,
  EmpName:'abc'
  Role :
     0- {roleid :1, 
         role:Admin, 
         isdeletee:true},

     1- {roleid :2,
         role:user, 
         isdeletee:true},

     2- {roleid :3, role :Admin, 
        isdeletee:true}

}
1- {
  EmpId: 102,
  EmpName:'xyz'
  Role :
     0- {roleid :1, 
         role:Admin, 
         isdeletee:true},

     1- {roleid :2,
         role:user, 
         isdeletee:true},

     2- {roleid :3, role :Admin, 
        isdeletee:true}

}
2- {
 EmpId: 103,
 EmpName:'xez'
 Role :
     0- {roleid :21, 
         role:userx, 
         isdeletee:true},

     1- {roleid :2,
         role:user, 
         isdeletee:true},

     2- {roleid :31, role :ad, 
        isdeletee:true}

},

1 个答案:

答案 0 :(得分:0)

很难准确地理解你想从你的问题中得到什么。 你在寻找这样的东西吗?它只是一个示例,我会在实际使用中添加空检查。

const response = [{
    EmpId: 101,
    EmpName: "abc",
    Role: [{
        roleid: 1,
        role: "Admin",
        isdeletee: true
      },
      {
        roleid: 2,
        role: "user",
        isdeletee: true
      },
      {
        roleid: 3,
        role: "Admin",
        isdeletee: true
      },
    ],
  },
  {
    EmpId: 102,
    EmpName: "xyz",
    Role: [{
        roleid: 1,
        role: "Admin",
        isdeletee: true
      },
      {
        roleid: 2,
        role: "user",
        isdeletee: true
      },
      {
        roleid: 3,
        role: "Admin",
        isdeletee: true
      },
    ],
  },
  {
    EmpId: 103,
    EmpName: "xez",
    Role: [{
        roleid: 21,
        role: "userx",
        isdeletee: true
      },
      {
        roleid: 2,
        role: "user",
        isdeletee: true
      },
      {
        roleid: 31,
        role: "ad",
        isdeletee: true
      },
    ],
  },
];

const role = response
  .filter((emp) => emp.EmpId === 102)[0]
  .Role
  .filter((roles) => roles.roleid === 2)[0]
  .role;

console.log(role);