Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在嵌套的对象数组中查找数组_Javascript_Arrays_Nested - Fatal编程技术网

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是正确的