我有这样的数组
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
}
]
在此数组中,第一个对象中的发送者属性值等于第二个对象中的接收者属性值。有没有一种方法可以检查并仅产生此值的一次出现,即仅存在该值的一个对象
尝试这个:
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] 删除。
我来说两句