admin 管理员组

文章数量: 1184232


2024年3月30日发(作者:osi七层网络模型详解)

对象数组去重_JS数组去重的三种方法

一、利用ES6的set数据结构去重

(1)Set结构不会添加重复的值,可以将数组的所有元素添加到Set

中,然后用(将其转换成数组,就可以得到一个不重复的数组

了。这个操作不需要for循环,比较高效。

代码实现:

```

let arr = [1,1,2,2,3,4,5]

let newArr = (new Set(arr))

(newArr) // [1,2,3,4,5]

```

(2)set结构也可以用于对象数组的去重,但是由于对象的比较不

是基于值的比较,而是基于引用的比较,如果直接添加数组到set结构中,

得到的结果是不正确的,所以对于对象数组的去重,可以使用数组的

map(方法和set结构,通过map方法将每个元素映射成一个字符串,然后

将字符串添加到set结构中,就可以实现对象数组的去重了。

代码实现:

```

let objArr = [{name: 'zhangsan',age: 25},{name: 'lisi', age:

25},{name: 'zhangsan', age: 18}]

let newObjArr = (new Set((item =>

ify(item))))

newObjArr = (item => (item))

(newObjArr) // [{name: 'zhangsan',age: 25},{name:

'lisi', age: 25},{name: 'zhangsan', age: 18}]

```

二、使用indexOf,filter进行去重

(1)使用indexOf方法,在数组中指定元素,如果存在返回元素的

索引,如果不存在返回-1,可以通过indexOf数组中指定元素是否存在,

如果不存在则存入新数组中,最后得到一个没有重复元素的数组。

代码实现:

```

let arr = [1,2,1,2,3,4,5]

let newArr = []

h(item =>

if (f(item) === -1)


本文标签: 数组 元素 结构 存在 网络