如何删除Javascript数组中的重复对象属性
我和其他不同的用户之间有一个消息数组,我试图筛选该数组,使其只包含一个用户的单一事件(例如,在该数组中,我和John之间有10条消息,其中我是发送者或接收者),我试图获得一个只包含John的单一事件的新数组,最新消息(无论是约翰作为发送者还是接收者)。我和Jane之间也有两条消息(一条是我发送的,另一条是我接收的),我希望我和Jane之间也只有一条消息 最后,我试图得到一个包含三条消息的数组 -一个是托马斯 -一个是简 -一个是约翰 如果有人有解决方案,请分享如何删除Javascript数组中的重复对象属性,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我和其他不同的用户之间有一个消息数组,我试图筛选该数组,使其只包含一个用户的单一事件(例如,在该数组中,我和John之间有10条消息,其中我是发送者或接收者),我试图获得一个只包含John的单一事件的新数组,最新消息(无论是约翰作为发送者还是接收者)。我和Jane之间也有两条消息(一条是我发送的,另一条是我接收的),我希望我和Jane之间也只有一条消息 最后,我试图得到一个包含三条消息的数组 -一个是托马斯 -一个是简 -一个是约翰 如果有人有解决方案,请分享 [ { "_id
[
{
"_id": "5f58b7a4075626065aaa752a",
"message": "Hi",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4ea9d045cc6b736870a076",
"senderInfo": {
"_id": "5f58b7a4075626065aaa752b",
"name": "Thomas",
},
"receiverInfo": {
"_id": "5f58b7a4075626065aaa752c",
"name": "ME",
}
},
{
"_id": "5f57f190075626065aaa600d",
"message": "When I click on \"go to session\", I just see myself. I doubt the connection was established",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57f190075626065aaa600e",
"name": "Me",
},
"receiverInfo": {
"_id": "5f57f190075626065aaa600f",
"name": "John",
}
},
{
"_id": "5f57f08d075626065aaa5eed",
"message": "I think I lost all the calls. The session takes a while to load",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57f08d075626065aaa5eee",
"name": "Me ",
},
"receiverInfo": {
"_id": "5f57f08d075626065aaa5eef",
"name": "John",
}
},
{
"_id": "5f57f068075626065aaa5eae",
"message": "Kk",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4e646822ab43702ee29ebb",
"senderInfo": {
"_id": "5f57f068075626065aaa5eaf",
"name": "John",
},
"receiverInfo": {
"_id": "5f57f068075626065aaa5eb0",
"name": "Me",
},
},
{
"_id": "5f57efd3075626065aaa5e2d",
"message": "I'm available now",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57efd3075626065aaa5e2e",
"name": "Me"
},
"receiverInfo": {
"_id": "5f57efd3075626065aaa5e2f",
"name": "John",
}
},
{
"_id": "5f57ee75075626065aaa5dcb",
"message": "Ok",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57ee75075626065aaa5dcc",
"name": "Me",
},
"receiverInfo": {
"_id": "5f57ee75075626065aaa5dcd",
"name": "John",
}
},
{
"_id": "5f57ee5f075626065aaa5d99",
"message": "Mark available let me try ",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4e646822ab43702ee29ebb",
"attachment": null,
"type": 1,
"senderInfo": {
"_id": "5f57ee5f075626065aaa5d9a",
"name": "John"
},
"receiverInfo": {
"_id": "5f57ee5f075626065aaa5d9b",
"name": "Me"
}
},
{
"_id": "5f57ee23075626065aaa5d6d",
"message": "I got the notification but it just didn't connect",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57ee23075626065aaa5d6e",
"name": "Me"
},
"receiverInfo": {
"_id": "5f57ee23075626065aaa5d6f",
"name": "John",
}
},
{
"_id": "5f57ede3075626065aaa5d46",
"message": "Didn't go",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4e646822ab43702ee29ebb",
"senderInfo": {
"_id": "5f57ede3075626065aaa5d47",
"name": "John",
},
"receiverInfo": {
"_id": "5f57ede3075626065aaa5d48",
"name": "Me",
}
},
{
"_id": "5f57edd9075626065aaa5d38",
"message": "I tried to call",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4e646822ab43702ee29ebb",
"senderInfo": {
"_id": "5f57edd9075626065aaa5d39",
"name": "John",
},
"receiverInfo": {
"_id": "5f57edd9075626065aaa5d3a",
"name": "Me",
}
},
{
"_id": "5f57ed8a075626065aaa5d19",
"message": "Hi",
"receiver": "5f4e646822ab43702ee29ebb",
"sender": "5f004feae528a90017327f3b",
"senderInfo": {
"_id": "5f57ed8a075626065aaa5d1a",
"name": "Me",
},
"receiverInfo": {
"_id": "5f57ed8a075626065aaa5d1b",
"name": "John",
},
},
{
"_id": "5f58b7a4075626065aaa752a",
"message": "Hi",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4ea9d045cc6b736870a076",
"senderInfo": {
"_id": "5f58b7a4075626065aaa752b",
"name": "Jane",
},
"receiverInfo": {
"_id": "5f58b7a4075626065aaa752c",
"name": "ME",
}
},
{
"_id": "5f58b7a4075626065aaa752a",
"message": "Hi",
"receiver": "5f004feae528a90017327f3b",
"sender": "5f4ea9d045cc6b736870a076",
"receiverInfo": {
"_id": "5f58b7a4075626065aaa752b",
"name": "Jane",
},
"senderInfo": {
"_id": "5f58b7a4075626065aaa752c",
"name": "ME",
}
},
]
可能有不止一种方法可以做到这一点。在没有任何上下文的情况下,听起来好像您正在尝试在某些Javascript应用程序代码中执行此操作,假设这是解决问题的正确级别,我将这样做:
使用。对于每条消息,检查结果数组中的消息中是否已经存在另一条与该用户相关的消息。如果没有,则将消息添加到结果数组,否则返回结果数组。您可以提取一个要对列表排序的不同键(名称) 用…然后排序
让dJson='{JSON}'
//获取所有发送方或接收方的名称作为密钥
let allNames=[]//所有邮件名称,包括dublicate
const p_me=JSON.parse(dJson);
p_me['lol'].forEach(项目=>{
if(item.receiverInfo.name.toLowerCase()!=“me”){
allNames.push(item.receiverInfo.name.toLowerCase())
}否则{
allNames.push(item.senderInfo.name.toLowerCase())
}
})
//使用Set对象删除副本
让名称=[…新集合(所有名称)];
//获取新的筛选列表
让MyList=[]//指定所需的列表
(姓名){
对于(p_me的obj['lol']){
if(obj.receiverInfo.name.toLowerCase()==name | | obj.senderInfo.name.toLowerCase()==name){
//获取第一个匹配项,忽略相同名称的其他匹配项
MyList.push(obj)
打破
}
}
}
到目前为止,您尝试了什么?我尝试了数组集,我还尝试了循环和检查每个objectPost代码的实例,否则没有人知道您实际上在尝试做什么。