Arrays 要从typescript中的json数组中删除重复值吗

Arrays 要从typescript中的json数组中删除重复值吗,arrays,json,typescript,Arrays,Json,Typescript,要从阵列中删除重复项 我想移除其中一个。类似地,当存在多个重复项时,我只想保留第一个对象,因为我得到的数组是按时间降序排列的 这是我的密码: chatlist : [ { "receiver": "Remya", "message": "hiiiii", "created": "2018-07-09T05:22:28.143Z" }, { "sender": "Remya",

要从阵列中删除重复项
我想移除其中一个。类似地,当存在多个重复项时,我只想保留第一个对象,因为我得到的数组是按时间降序排列的

这是我的密码:

 chatlist   : [
      {
        "receiver": "Remya",
        "message": "hiiiii",
        "created": "2018-07-09T05:22:28.143Z"
      },
      {
        "sender": "Remya",
        "message": "hi",
        "created": "2018-07-07T10:35:08.919Z"
      },
      {
        "sender": "Mini",
        "message": "hi",
        "created": "2018-07-05T08:42:50.189Z"
      },
      {
        "sender": "Mini",
        "message": "hlo",
        "created": "2018-07-05T05:11:40.331Z"
      },
      {
        "receiver": "Mini",
        "message": "hi",
        "created": "2018-07-05T05:11:34.489Z"
      },
      {
        "receiver": "Maya",
        "message": "hlo",
        "created": "2018-07-04T05:23:35.650Z"
      },
      {
        "sender": "Maya",
        "message": "hi",
        "created": "2018-07-04T05:22:21.723Z"
      },
      {
        "sender": "Mini",
        "message": "hello",
        "created": "2018-07-04T05:20:06.341Z"
      },
      {
        "receiver": "Mini",
        "message": "hi",
        "created": "2018-07-04T05:19:32.964Z"
      }
    ]
我希望输出如下:

    chatlist   : [
  {
    "receiver": "Remya",
    "message": "hiiiii",
    "created": "2018-07-09T05:22:28.143Z"
  },
{
    "sender": "Mini",
    "message": "hi",
    "created": "2018-07-05T08:42:50.189Z"
  },
{
    "receiver": "Maya",
    "message": "hlo",
    "created": "2018-07-04T05:23:35.650Z"
  }
]
我正在尝试执行我的聊天列表页面。所以我需要将我最近的聊天记录作为列表加载


提前谢谢

这是我的建议

您可以遍历聊天列表(
数据
)。如果您找到一个新的发送者或接收者,请将其存储在两个列表之一(
knownSenders
knownReceivers
)中,然后将聊天项目放入
finalChatList
中。如果发送者或接收者重复,则聊天项目将被忽略,因为filter方法返回长度大于0的列表

let knownSenders = [];
let knownReceivers = [];
let finalChatList = [];
const data = JSON.parse(chatList);

data.forEach( element => {
    const sender = element.sender ? element.sender : null;
    const receiver = element.receiver ? element.receiver : null;

    if (sender) {
        if (knownSenders.filter( el => el.sender === sender).length <= 0) {
            // sender yet unknown
            knownSenders.push(sender);
            finalChatList.push(element);
        }
    } else if  (receiver) {
        if (knownReceivers.filter( el => el.receiver === receiver).length <= 0) {
            // receiver yet unknown
            knownReceivers.push(receiver);
            finalChatList.push(element);
        }
    }
});
告知收件人=[];
告知接收者=[];
让finalChatList=[];
const data=JSON.parse(chatList);
data.forEach(元素=>{
const sender=element.sender?element.sender:空;
const receiver=element.receiver?element.receiver:空;
如果(发送方){

if(knownSenders.filter(el=>el.sender==sender.length el.receiver==receiver).length第一个数组中没有任何重复项。你能描述一下分组的逻辑吗?例如,你的输出没有任何与Remya的发送者相关的内容,但是你的未过滤的内容有…你说你只想保留每个接收者的第一次出现。时间戳重要吗?我只是从m中删除了我作为发送者或接收者的用户名y数组因为我只想显示我的联系人,例如谁是我连接的,谁的连接菜单现在我需要按名称排序,例如是否在发件人或收件人中,我只想在最近的聊天中使用一次该名称(我列表中的第一次聊天,每个用户的名称),非常感谢…….您的建议修复了该问题