温馨提示×

js复杂数组去重的方法有哪些

js
小亿
121
2023-08-05 13:28:37
栏目: 编程语言

在JavaScript中,有多种方法可以对复杂数组进行去重。

  1. 使用Set对象:Set对象是ES6中引入的一种新的数据结构,它允许存储任何类型的唯一值。可以将复杂数组转换为Set对象,然后再将其转换回数组,即可实现数组去重。
let arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
let uniqueArr = [...new Set(arr.map(JSON.stringify))].map(JSON.parse);
console.log(uniqueArr);
  1. 使用filter()方法和indexOf()方法:通过遍历数组,使用indexOf()方法检查元素在数组中的位置,并将不重复的元素筛选出来。
let arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
let uniqueArr = arr.filter((item, index) => {
return arr.findIndex(obj => JSON.stringify(obj) === JSON.stringify(item)) === index;
});
console.log(uniqueArr);
  1. 使用reduce()方法:使用reduce()方法遍历数组,将不重复的元素存储在一个新的数组中。
let arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
let uniqueArr = arr.reduce((result, item) => {
const index = result.findIndex(obj => JSON.stringify(obj) === JSON.stringify(item));
if (index === -1) {
result.push(item);
}
return result;
}, []);
console.log(uniqueArr);

以上是几种常用的方法,可以根据具体情况选择适合的方法进行数组去重。

0