Javascript 如何从另一个对象列表中删除对象列表

Javascript 如何从另一个对象列表中删除对象列表,javascript,json,Javascript,Json,我有两个列表json,一个叫做subscribers,另一个叫做following 以下内容: { 0: { id: "u0", username: "user0", avatar: "user0.png" }, 1: { id: "u1", username: "user1", avatar: "user1.png" }, 2: { id: "u2", username: "user2", avatar: "user2.png" }, 3: { id: "u3", usern

我有两个列表
json
,一个叫做subscribers,另一个叫做following

以下内容

{ 
  0: { id: "u0", username: "user0", avatar: "user0.png" },
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  2: { id: "u2", username: "user2", avatar: "user2.png" },
  3: { id: "u3", username: "user3", avatar: "user3.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" },
  5: { id: "u5", username: "user5", avatar: "user5.png" }
}
{ 
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" }
}
订阅者

{ 
  0: { id: "u0", username: "user0", avatar: "user0.png" },
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  2: { id: "u2", username: "user2", avatar: "user2.png" },
  3: { id: "u3", username: "user3", avatar: "user3.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" },
  5: { id: "u5", username: "user5", avatar: "user5.png" }
}
{ 
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" }
}
我想从以下列表中删除订阅服务器,
[following-subscribers=剩余的以下列表]


如何删除它们取决于这两个列表中每个对象的
id
属性?

如果您的键与您的id对齐:

f = {
  0: { id: "u0", username: "user0", avatar: "user0.png" },
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  2: { id: "u2", username: "user2", avatar: "user2.png" },
  3: { id: "u3", username: "user3", avatar: "user3.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" },
  5: { id: "u5", username: "user5", avatar: "user5.png" }
}

s = {
  1: { id: "u1", username: "user1", avatar: "user1.png" },
  4: { id: "u4", username: "user4", avatar: "user4.png" }
}

for( i in s ){
  delete f[i]
}

使用lodash非常有用:
_.pullBy(以下为订阅服务器“id”)

执行此操作的一种方法是使用跟随者的键(或值)基于订阅服务器中未显示的条目创建新对象:

let followers={
0:{id:“u0”,用户名:“user0”,头像:“user0.png”},
1:{id:“u1”,用户名:“user1”,头像:“user1.png”},
2:{id:“u2”,用户名:“user2”,头像:“user2.png”},
3:{id:“u3”,用户名:“user3”,头像:“user3.png”},
4:{id:“u4”,用户名:“user4”,头像:“user4.png”},
5:{id:“u5”,用户名:“user5”,头像:“user5.png”}
}
让订阅者={
1:{id:“u1”,用户名:“user1”,头像:“user1.png”},
4:{id:“u4”,用户名:“user4”,头像:“user4.png”}
}
followers=Object.keys(followers).reduce((acc,current)=>!Object.values(subscribers).some(sub=>sub.id===followers[current].id)?{…acc[current]:followers[current]}:acc,{})

console.log(followers)
对象的键是否始终与id对齐?i、 e.
n:{id:“un”…}
总是正确的吗?不,它们是不同的。。我在这里列出它们只是为了解释对象的结构@不,键是
0,1,2,…。
但是
id
与键不同。我想检查两个对象中的id,以及它们是否匹配。。删除对象后面的匹配对象表单
。我使用了这个
\uuu0.pullby(数组,值,[iteratee=\u0.identity])
,它非常有用。。谢谢;)