JavaScript 对象数组去重方法详解
在 JavaScript 中,可以通过以下几种方法对一个对象数组进行去重:
- 使用 Set 数据结构:Set 是一种集合数据类型,可以自动去重。可以将对象数组转换为 Set,然后再将 Set 转换回数组即可实现去重。
let arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];
let uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr);
// 输出: [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}]
- 使用 reduce 方法:使用 reduce 方法遍历对象数组,根据对象的某个属性值进行去重。
let arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];
let uniqueArr = arr.reduce((acc, curr) => {
if (!acc.find(obj => obj.id === curr.id)) {
acc.push(curr);
}
return acc;
}, []);
console.log(uniqueArr);
// 输出: [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}]
- 使用 filter 方法:使用 filter 方法遍历对象数组,根据对象的某个属性值进行去重。
let arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];
let uniqueArr = arr.filter((obj, index, self) =>
index === self.findIndex(o => o.id === obj.id));
console.log(uniqueArr);
// 输出: [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}]
以上是三种常见的对象数组去重方法,可以根据具体需求选择使用。
原文地址: https://www.cveoy.top/t/topic/nMSB 著作权归作者所有。请勿转载和采集!