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

Similoluwa Odeyemi

我有这样的数组

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

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

马杰德·巴达维(Majed Badawi)

尝试这个:

const ex = [
    {
        name: 'John',
        sender: "12345678",
        receiver: {
            name: "simi",
            age: 20,
            city: "New York"
        },
         time: "12:30 am"
    },
    {
        name: 'Jane',
        sender: {
            name: "simi",
            age: 20,
            city: "New York"
        },
        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));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章