admin 管理员组

文章数量: 887087


2024年2月19日发(作者:大数据工程师证含金量)

JS对象数组去重的常用方法

在JavaScript中,有很多种方法可以对对象数组进行去重。下面将介绍一些常用的方法:

1. 使用Set和方法:

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' },

{ id: 3, name: 'Mary' }

];

const uniqueArr = (new

Set((ify))).map();

(uniqueArr);

```

这种方法使用了Set数据结构来存储对象的JSON字符串表示,然后将Set转换为数组,并通过map方法进行JSON解析来还原对象。

2. 使用reduce方法:

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' },

{ id: 3, name: 'Mary' }

];

const uniqueArr = ((acc, obj) =>

const exists = (item => === &&

=== );

if (!exists)

(obj);

}

return acc;

},[]);

(uniqueArr);

```

这种方法使用reduce方法来迭代数组,并使用some方法检查是否已经存在相同的对象。如果不存在,则将其添加到累加器数组中。

3. 使用filter和indexof方法:

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' },

{ id: 3, name: 'Mary' }

];

const uniqueArr = ((obj, index, self) =>

return index === dex(item => ===

&& === );

});

(uniqueArr);

```

这种方法使用filter方法来创建一个新数组,其中包含满足条件的元素。使用index和self来查找第一个匹配的元素索引,并与当前索引进行比较。

4. 使用Map数据结构:

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' },

{ id: 3, name: 'Mary' }

];

const map = new Map(;

const uniqueArr = (obj =>

const key = + '-' + ;

const exists = (key);

if (!exists)

(key, obj);

}

return !exists;

});

(uniqueArr);

```

这种方法使用Map数据结构来存储对象的唯一键,并通过查对象是否已经存在于Map中。

5. 使用forEach方法和对象属性:

```javascript

has方法检

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' },

{ id: 3, name: 'Mary' }

];

const uniqueArr = [];

const uniqueProps = [];

h(obj =>

const prop = + '-' + ;

if (!es(prop))

(prop);

(obj);

}

});

(uniqueArr);

```

这种方法使用forEach方法迭代数组,并将对象属性的组合存储在一个数组(uniqueProps)中。然后使用includes方法检查属性是否已经存在,并将对象添加到结果数组中。

以上是一些常用的方法,可以将JavaScript对象数组去重。根据实际需求和数据结构的复杂性,选择适合的方法进行操作。


本文标签: 方法 使用 对象 数组