介绍
数组去重的方法不少,每个人都有自己喜欢用的方法,我只讲两种我喜欢用的方法。
方法一
1 | Array.prototype.unique = function(){ |
此方法利用对象属性不能重复的性质,将数组值遍历到对象的属性上,如果属性名的属性值已存在,则忽略,如果属性值不存在,则添加新属性,并赋值(注意赋的值不能为假),然后将这个属性名push到新数组里,遍历结束,返回新数组。
方法二
1 | Array.prototype.unique = function(){ |
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
同时ES6为数组新增了Array.from
方法,用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。
new Set
可以将数组转化为Set数据结构,并去重,如:1
2
3new Set([1,2,3,3])
//{1, 2, 3}
再用Array.from
将Set转回为数组