从数组Java脚本中删除特定的重复项

问题描述

我有一个像这样的数组

const ex = [
    {
        name: 'John',sender: "12345678",receiver: {
            name: "simi",age: 20,city: "New York"
        },time: 12:30 am
    },{
        name: 'Jane',sender: {
            name: "simi",receiver: "12345678",time: 1:00 pm
    }
]

在此数组中,第一个对象中的发送者属性值等于第二个对象中的接收者属性值。 有没有一种方法可以检查并仅产生此值的一次出现,即仅存在该值的一个对象

解决方法

尝试一下:

const ex = [
    {
        name: 'John',sender: "12345678",receiver: {
            name: "simi",age: 20,city: "New York"
        },time: "12:30 am"
    },{
        name: 'Jane',sender: {
            name: "simi",receiver: "12345678",time: "1:00 pm"
    }
]

let map = {}
ex.forEach(e => {
     let obj = null;
     if(e.sender instanceof Object) 
          obj = e.sender;
     else if(e.receiver instanceof Object) 
          obj = e.receiver;
     if(!obj) return;
     let key = obj.name+obj.age+obj.city;
     if(!map[key])
          map[key] = e;
});

console.log(Object.values(map));