Javascript 某些数组在嵌套数组中不起作用
我想检查当前用户是否存在于嵌套数组中。 这是我从API获得的示例数组的几个部分:Javascript 某些数组在嵌套数组中不起作用,javascript,arrays,typescript,Javascript,Arrays,Typescript,我想检查当前用户是否存在于嵌套数组中。 这是我从API获得的示例数组的几个部分: [ { "owner":"abc", "_id":"xyz77", "comments":[ ], "likes":[ { "_id":"9999", "username":"user1" },
[
{
"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
}
]
上面的结果是ownerabchasuser1的likes数组,但在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”)代码>