js数组中存对象,根据对象的属性进行去重
时间: 2023-05-04 15:02:49 浏览: 148
JS数组中存储对象的场景非常常见。如果数组中的对象中有重复的属性值,我们需要根据这些属性值进行去重。方法有很多种,具体取决于这些对象的属性值的数据类型和具体要求。
常见的一种方法是利用ES6的Set数据类型进行去重。我们可以先遍历数组,将每个对象的属性值组成一个字符串,然后将这个字符串添加到Set中。由于Set中的元素不允许重复,所以最后Set中的元素即为去重后的所有属性值。最后,我们可以再遍历原数组,比对每个对象的某个属性值与Set中生成的属性值字符串,如果相同则说明这个对象是重复的,可以从数组中删除。
下面是一段示例代码:
```
let array = [
{id: 1, name: 'Tom'},
{id: 2, name: 'Jerry'},
{id: 3, name: 'Tom'},
{id: 4, name: 'Mike'},
{id: 5, name: 'Jerry'}
];
let set = new Set();
let uniqueArray = [];
for(let obj of array) {
let propStr = obj.id + ',' + obj.name;
if(!set.has(propStr)) {
set.add(propStr);
uniqueArray.push(obj);
}
}
console.log(uniqueArray);
```
该代码通过将每个对象的id和name属性值组成一个字符串,再将这个字符串添加到Set中进行去重。最终打印出去重后的所有对象。
阅读全文