Javascript 在嵌套的对象数组中查找数组
我想在嵌套的对象数组中找到一个数组,我该怎么做 这是我的数组Javascript 在嵌套的对象数组中查找数组,javascript,arrays,nested,Javascript,Arrays,Nested,我想在嵌套的对象数组中找到一个数组,我该怎么做 这是我的数组 const arr = [ { "teamA": [ { "_id": "5fcb57c5a1a426c03bcfd25f", "level": 10, "username": "as
const arr = [
{
"teamA": [
{
"_id": "5fcb57c5a1a426c03bcfd25f",
"level": 10,
"username": "asaf"
}
],
"teamB": [],
"options": {}
},
{
"teamA": [
{
"_id": "a7fgy3h1uio",
"level": 10,
"username": "asaf"
}
],
"teamB": [
{
"_id": "13rfedsc32",
"level": 10,
"username": "asaf"
},
{
"_id": "dghg453r3q",
"level": 10,
"username": "asaf"
}
],
"options": {}
}
];
现在我想创建一个函数,该函数通过_id返回球员所在团队的数组
例如,我创建了以下内容:
const findTeam = playerId => {
const match = arr.find(({ teamA, teamB }) => [teamA, teamB].some(team => team.some(i => i._id == playerId)));
if(!match) return;
const { teamA, teamB } = match;
const team = [teamA, teamB].find(team => team.some(i => i._id == playerId));
return team;
};
这是可行的,但我做的方式看起来很混乱,有什么好办法吗?
谢谢 您可以使用:
const arr=[{teamA:[{{id:“5fcb57c5a1a426c03bcfd25f”,级别:10,用户名:“asaf”}],teamB:[},选项:{},{teamA:[{id:“a7fgy3h1io”,级别:10,用户名:“asaf”},teamB:[{{{id:“13rfedsc32”,级别:10,用户名:“asaf”},{id:“dghg453r3q”,级别:10,用户名:“asaf”},选项:{};
const findTeam=playerId=>arr.flatMap(({teamA,teamB})=>[teamA,teamB])
.find(team=>team.some(player=>player.\u id==playerId));
log(findTeam('13rfedsc32'))代码>数组中的每个对象是否只有两个团队-teamA和teamB?@baymax是正确的