Javascript 某些数组在嵌套数组中不起作用

Javascript 某些数组在嵌套数组中不起作用,javascript,arrays,typescript,Javascript,Arrays,Typescript,我想检查当前用户是否存在于嵌套数组中。 这是我从API获得的示例数组的几个部分: [ { "owner":"abc", "_id":"xyz77", "comments":[ ], "likes":[ { "_id":"9999", "username":"user1" },

我想检查当前用户是否存在于嵌套数组中。 这是我从API获得的示例数组的几个部分:

[
    {
        "owner":"abc",
        "_id":"xyz77",
        "comments":[

        ],
        "likes":[
            {
                "_id":"9999",
                "username":"user1"
            },
            {
                "_id":"9998",
                "username":"user2"
            }
        ]
    },
    {
        "owner":"bcd"
    }
]
我想看看user1是否存在于likes数组中。 如果是,则应给出如下输出:

[
    {
        "owner":"abc",
        "user1":true
    },
    {
        "owner":"bcd",
        "user1":true
    },
    {
        "owner":"def",
        "user1":false
    }
]
上面的结果是ownerabchasuser1likes数组,但在ownerdef中不存在。 我尝试了
array。一些
用于所有者数组的
forEach
中的likes数组。但是没有得到正确的结果。
非常感谢您的帮助

您可以使用和的组合来创建一个结果数组,该数组检查每个所有者对象的
数组中的任何用户是否与您的用户名匹配:

const数据=[
{
“所有者”:“abc”,
“_id”:“xyz77”,
“评论”:[…],
“喜欢”:[
{
“_id”:“9999”,
“用户名”:“user1”
},
{
“_id”:“9998”,
“用户名”:“user2”
}
]
},
{
“所有者”:“bcd”,
“_id”:“xyz88”,
“评论”:[…],
“喜欢”:[
{
“_id”:“9998”,
“用户名”:“user2”
},
{
“_id”:“9997”,
“用户名”:“user3”
}
]
},
];
const checkUsername=(数据,用户名)=>{
返回data.map(e=>{
const x={owner:e.owner};
x[username]=e.likes.some(el=>el.username==username);
返回x;
});
};
log(checkUsername(数据“user1”);

log(checkUsername(数据'user2'))与@awarrier99答案类似,使用解构以及
map
some

const数据=[
{
所有者:“abc”,
_id:“xyz77”,
评论:[],
喜欢:[
{
_id:“9999”,
用户名:“user1”,
},
{
_身份证号码:“9998”,
用户名:“user2”,
},
],
},
{
所有者:“bcd”,
},
];
常量更新=(arr,用户)=>
data.map({likes=[],owner})=>({
[用户]:喜欢.some({username}=>username==user),
所有者,
}));
日志(更新(数据,“user1”)