js数组对象去重方法

来源:undefined 2025-06-11 14:18:06 0

在JavaScript中,我们可以使用不同的方法来对数组对象进行去重。下面我将介绍几种比较常用的方法。

1. 使用Set数据结构

Set是ES6中引入的新的数据结构,它类似于数组,但是其成员的值都是*的。我们可以使用Set来实现数组对象的去重。

```javascript

let arr = [{name: Tom

age: 20}

{name: Jerry

age: 30}

{name: Tom

age: 20}];

let uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);

console.log(uniqueArr);

// 输出:[{name: Tom

age: 20}

{name: Jerry

age: 30}]

```

上述代码中,我们首先通过map方法将数组对象转换为字符串,然后通过Set数据结构去重,再通过Array.from方法将Set转换为数组,*通过map方法将字符串转换为对象。

2. 使用reduce方法

reduce方法是数组的归并方法,我们可以使用reduce方法遍历数组并利用一个新的数组来存储没有重复的对象。

```javascript

let arr = [{name: Tom

age: 20}

{name: Jerry

age: 30}

{name: Tom

age: 20}];

let uniqueArr = arr.reduce((result

current) => {

let exist = result.find(item => item.name === current.name && item.age === current.age);

if (!exist) {

result.push(current);

}

return result;

}

[]);

console.log(uniqueArr);

// 输出:[{name: Tom

age: 20}

{name: Jerry

age: 30}]

```

上述代码中,我们遍历数组并查找新数组中是否已经存在相同的对象,如果不存在,则将当前对象添加到新数组中。

3. 使用filter方法

filter方法是数组的过滤方法,我们可以通过filter方法筛选出数组中的*对象。

```javascript

let arr = [{name: Tom

age: 20}

{name: Jerry

age: 30}

{name: Tom

age: 20}];

let uniqueArr = arr.filter((value

index

array) => {

return array.findIndex(item => item.name === value.name && item.age === value.age) === index;

});

console.log(uniqueArr);

// 输出:[{name: Tom

age: 20}

{name: Jerry

age: 30}]

```

上述代码中,我们使用filter方法筛选出*次出现的对象,即找到与当前对象属性相同的*个对象。

4. 使用对象的属性和JSON序列化

我们可以将数组对象转换为字符串进行去重。如果对象的属性值都相同,则它们的字符串表示也是相同的。

```javascript

let arr = [{name: Tom

age: 20}

{name: Jerry

age: 30}

{name: Tom

age: 20}];

let uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);

console.log(uniqueArr);

// 输出:[{name: Tom

age: 20}

{name: Jerry

age: 30}]

```

上述代码中,我们首先通过map方法将数组对象转换为字符串,然后通过Set数据结构去重,再通过Array.from方法将Set转换为数组,*通过map方法将字符串转换为对象。

总结:

以上就是几种常用的方法来对数组对象进行去重的方式。使用Set数据结构是效率较高的一种方法,它可以避免使用循环判断对象相等的问题。而使用reduce、filter等方法则需要进行循环判断。在实际应用中,可以根据具体的场景选择合适的方法来进行数组对象的去重。

上一篇:centos redis安装 下一篇:hadoop教程

最新文章