如何删除Javascript数组中的重复对象属性

问题描述

我和其他用户之间有一个消息数组,我试图过滤该数组以仅包含一个用户(例如,在此数组中,我和John之间有10条消息,是发送者还是接收者),我试图获得一个仅包含一次出现的最新消息约翰(无论是作为发送者还是接收者的约翰)的新数组。我和Jane之间也有两条消息(一个是我的发件人,另一个是我的接收者),我也想在我和Jane之间只有一条消息。

所以最后,我试图创建一个包含三个消息的数组,

-与托马斯一人

-与简一人

-和约翰同一个

如果有人有解决方案,请分享

[
{
    "_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","senderInfo": {
        "_id": "5f57f08d075626065aaa5eee","name": "Me ","receiverInfo": {
        "_id": "5f57f08d075626065aaa5eef",{
    "_id": "5f57f068075626065aaa5eae","message": "Kk","sender": "5f4e646822ab43702ee29ebb","senderInfo": {
        "_id": "5f57f068075626065aaa5eaf","receiverInfo": {
        "_id": "5f57f068075626065aaa5eb0",{
    "_id": "5f57efd3075626065aaa5e2d","message": "I'm available Now","senderInfo": {
        "_id": "5f57efd3075626065aaa5e2e","name": "Me"
    },"receiverInfo": {
        "_id": "5f57efd3075626065aaa5e2f",{
    "_id": "5f57ee75075626065aaa5dcb","message": "Ok","senderInfo": {
        "_id": "5f57ee75075626065aaa5dcc","receiverInfo": {
        "_id": "5f57ee75075626065aaa5dcd",{
    "_id": "5f57ee5f075626065aaa5d99","message": "Mark available let me try ","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","senderInfo": {
        "_id": "5f57ee23075626065aaa5d6e","receiverInfo": {
        "_id": "5f57ee23075626065aaa5d6f",{
    "_id": "5f57ede3075626065aaa5d46","message": "Didn't go","senderInfo": {
        "_id": "5f57ede3075626065aaa5d47","receiverInfo": {
        "_id": "5f57ede3075626065aaa5d48",{
    "_id": "5f57edd9075626065aaa5d38","message": "I tried to call","senderInfo": {
        "_id": "5f57edd9075626065aaa5d39","receiverInfo": {
        "_id": "5f57edd9075626065aaa5d3a",{
    "_id": "5f57ed8a075626065aaa5d19","senderInfo": {
        "_id": "5f57ed8a075626065aaa5d1a","receiverInfo": {
        "_id": "5f57ed8a075626065aaa5d1b",{
    "_id": "5f58b7a4075626065aaa752a","name": "Jane","receiverInfo": {
        "_id": "5f58b7a4075626065aaa752b","senderInfo": {
        "_id": "5f58b7a4075626065aaa752c",]

解决方法

执行此操作的方法可能不止一种。没有更多的上下文,这听起来像您正在尝试在某些Javascript应用程序代码中执行此操作,这就是我要这样做的方式,假定这是解决您的问题的正确水平:

使用array reduce。对于每条消息,请检查结果数组中的消息中是否已经存在与用户的另一条消息。如果不是,则将消息添加到结果数组,否则返回结果数组。

,

您可以做的是提取要对列表进行排序的唯一键(名称) 与...然后排序

 const [isNavbarOpen,setNavbar]= useState(false);
    <Route
       path="/patient/request_appointment"
       component={UserDetails}
       render={setNavbarOpen(false)}
    />

对于非常大的json文件而言,不是最佳实现...由于两次遍历数组