在Javascript中,可以使用以下方法来比较对象数组中的对象并删除重复的对象:
filter()
方法和indexOf()
方法来删除重复的对象。首先,使用filter()
方法遍历对象数组,并使用indexOf()
方法检查当前对象在数组中的索引位置。如果索引位置不等于当前遍历的索引位置,则表示该对象是重复的,可以将其过滤掉。const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' },
{ id: 3, name: 'Bob' }
];
const uniqueArray = array.filter((obj, index, self) =>
index === self.findIndex((o) => (
o.id === obj.id && o.name === obj.name
))
);
console.log(uniqueArray);
上述代码中,filter()
方法接受一个回调函数,该函数会传入三个参数:当前遍历的对象、当前遍历的索引位置和原始数组。在回调函数中,使用findIndex()
方法来查找当前对象在原始数组中的索引位置。如果当前索引位置等于查找到的索引位置,则表示该对象是唯一的,会被保留在新的数组中。
Set
和map()
方法来删除重复的对象。首先,将对象数组转换为Set对象,利用Set对象的特性去除重复项。然后,使用map()
方法将Set对象转换回数组。const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' },
{ id: 3, name: 'Bob' }
];
const uniqueArray = Array.from(new Set(array.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArray);
上述代码中,map()
方法首先将对象数组转换为字符串数组,使用JSON.stringify()
方法将对象转换为字符串。然后,将字符串数组转换为Set对象,利用Set对象的特性去除重复项。最后,使用map()
方法将Set对象转换回数组,并使用JSON.parse()
方法将字符串转换为对象。
以上两种方法都可以实现在Javascript中比较对象数组中的对象并删除重复的对象。根据具体的需求和数据结构,选择适合的方法来处理重复对象。
领取专属 10元无门槛券
手把手带您无忧上云