在 JavaScript 中,可以通过以下几种方法对一个对象数组进行去重:

  1. 使用 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'}]
  1. 使用 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'}]
  1. 使用 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录