Javascript 如何循环一个数组并获取另一个数组中对象的特定属性
因此,我有一组用户,这些用户与特定的团队联系在一起,每个用户都有特定的权限。如果用户绑定到多个团队,那么阵列中也可以使用所有这些团队:Javascript 如何循环一个数组并获取另一个数组中对象的特定属性,javascript,reactjs,Javascript,Reactjs,因此,我有一组用户,这些用户与特定的团队联系在一起,每个用户都有特定的权限。如果用户绑定到多个团队,那么阵列中也可以使用所有这些团队: [ { "name" : "user1", "teams": [ {"id": "123", "name": "team-1", "permissions" : 1} ] }, { "name" : "user2", "teams": [ {"id": "123", "name": "tea
[
{
"name" : "user1",
"teams": [
{"id": "123", "name": "team-1", "permissions" : 1}
]
},
{
"name" : "user2",
"teams": [
{"id": "123", "name": "team-1", "permissions" : 3}
]
},
{
"name" : "user3",
"teams": [
{"id": "456", "name": "team-2", "permissions" : 3},
{"id": "789", "name": "team-3", "permissions" : 3},
{"id": "123", "name": "team-1", "permissions" : 3},
{"id": "233", "name": "team-4", "permissions" : 3}
]
}
]
所以现在我想要这个:
我得到了我正在查看的当前团队的ID(ID:123),如何映射数组,以便只显示ID:123的团队的权限
我做了以下操作,但这不起作用,因为User3的第一项是错误的团队
const MembersTable = observer(({ state }) => (
<div>
<table className="table table-hover table-responsive">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Permissions</th>
</tr>
</thead>
<tbody>
{state.accounts.map((account, i) => <MembersTableData state={state} account={account} team={account.teams} key={i}/>)}
</tbody>
</table>
</div>
))
const MembersTableData = observer(({ state, account, organization }) => (
<tr>
<td>
<span>{account.fullName}</span>
</td>
<td>{account.email}</td>
<td>
{team[0].permissions == 1 && <span>member</span>}
{team[0].permissions == 2 && <span>administrator</span>}
{team[0].permissions == 3 && <span>super admin</span>}
</td>
</tr>
))
constmemberstable=观察者({state})=>(
名称
电子邮件
权限
{state.accounts.map((account,i)=>)}
))
const MembersTableData=观察者({state,account,organization})=>(
{account.fullName}
{account.email}
{team[0]。权限==1&&member}
{团队[0]。权限==2&&administrator}
{团队[0]。权限==3&&super admin}
))
this.state.team
在本例中为“123”
如何解决此问题?团队[0]将始终拥有用户所属的第一个团队。您需要的是具有
id
属性的团队,该属性等于this.state.team
。因此,请尝试执行以下操作,而不是团队[0]
:
{team.find(t=>t.id==this.state.team.permissions==3&&super admin}
当然,这也适用于“成员”和“管理员”。您应该试试这个
const getTeamData=(data,teamId)=>data.map(users=>users.teams.filter(team=>team.id==teamId)).reduce((acc,current)=>acc.concat(current));
/**
[ {
身份证号码:“123”,
名称:“1队”,
权限:1
}, {
身份证号码:“123”,
名称:“1队”,
权限:3
}, {
身份证号码:“123”,
名称:“1队”,
权限:3
}]
*/