微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScriptReactJS比较两个对象

如何解决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 举报,一经查实,本站将立刻删除。