数组对象根据对象的一个属性进行去重
时间: 2023-11-01 14:54:34 浏览: 70
根据提供的引用内容,有三种主要的方法可以根据对象的一个属性对数组对象进行去重。
第一种方法是使用reduce函数。通过比较当前项与上一项的指定属性值,将不重复的项添加到结果数组中。具体实现代码如下:
```
const unique1 = (arr, key) => {
let item = arr !== next[key]) {
prev.push(next);
item = next;
}
return prev;
}, []);
};
console.log(unique1(resource, 'name'));
```
第二种方法是使用for循环。遍历数组,比较当前项与上一项的指定属性值,将不重复的项添加到新的数组中。具体实现代码如下:
```
const unique2 = (arr, key) => {
let item = arr !== arr[i][key]) {
newArr.push(arr[i]);
item = arr[i];
}
}
return newArr;
};
console.log(unique2(resource, 'name'));
```
第三种方法是使用Map数据结构。遍历数组,将指定属性值作为Map的键,将对应的项作为Map的值存储起来,最后返回Map的值数组即可。具体实现代码如下:
```
const unique3 = (arr, key) => {
const m = new Map();
for (const item of arr) {
if(!m.has(item[key])) {
m.set(item[key], item);
}
}
return [...m.values()];
};
console.log(unique3(resource, 'name'));
```
通过以上三种方法,都可以实现根据对象的一个属性对数组对象进行去重。