如何解决JavaScriptReactJS比较两个对象
const data = [
{
name: "John",lastName: "Doe",email: "stefa@gmail.com",password: "123",following: [{ id: "113"},{ id: "111" } }],id: "112",},{
name: "Jane",email: "dusica@gmail.com",following: [{ id: "112" }],id: "113",{
name: "Mark",lastName: "Twain",email: "marko@gmail.com",following: [],id: "111",];
如您所见,所有用户都有一个名为“ following”的数组,该数组包含该用户遵循的用户ID。我想“跟随”访问该数组以找出未关注的用户。假设我们要检查ID为“ 112”的第一个用户John Doe的“后续”数组。
const followers = [];
let suggestions = null;
props.users.forEach((user) => {
if (user.id === '112') {
user.following.forEach((item) => {
followers.push(item);
});
}
});
followers.map((item) => {
suggestions = props.users.map((user) => {
if (user.id !== item.id && user.id !== '112) {
console.log(item.id);
return <div>something</div>;
}
});
});
我尝试了类似的方法,但是结果却不是我期望的。如我所说,我想返回未被关注的用户并渲染它们,因为我希望它们可见,以便用户可以关注它们。我希望我能理解。谢谢。
解决方法
这是一个否定的比较。 因此,您想过滤出用户正在关注的所有用户。 您可以遍历每个用户,并将其与以下数组进行比较。如果以下数组包含用户,则不要显示该用户。
const notFollowing = allUsers.filter(user =>
!currentUser.following.some(({ id }) => id === user.id)
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。