归纳javascript数组去重的多种方法
归纳的多种js数组去重复的方法,包括五种基本方法和ES6的三种简洁的方法。
1. 新数组法
思路: 判断数组每项值,值不在新数组就push进新数组
1 | var ary = [1,2,3,3,2,3,4,5]; |
2. 数组下表判断法
思路:类似第一种,判断值在数组中的索引,索引和i不相等就push进新数组
1 | var ary = [1,2,3,3,2,3,4,5]; |
3. 对象键值对法
思路:可以记录次数的对象去重,判断当前数组值作为对象的key是否存在值, 存在即把对象的值+1,否则值置为1,对象的key为数组的值,value为次数;此方法利用了object键的唯一性。
1 | var ary = [1,2,3,3,2,3,4,5]; |
变式:
1 | var obj = {}, newarr = [], val, type; |
4. 排序后相邻元素对比
思路:利用sort()方法先对数组进行排序后,相邻元素对比不同push到新数组。
1 | var array = [3,6,3,9,7,5,9,12]; |
5. 优化遍历法
思路:利用双重循环,遇到重复元素跳出外层循环,进入下一次外层循环 这样就避免了重复元素的追加。有种冒泡排序的感觉0.0。
1 | var array = [12,252,32,32,22,12,45,50]; |
6. 利用ES6新特性的三种方法
思路:利用ES6中的Set数据结构,…扩展运算符,Array.from()数组转化的方法。
1. Set构造函数加…扩展运算符
1 | const set = new Set([1,5,3,4,5,1,1,0]); |
2. 函数传值加数组序列化方法
1 | function unique(array){ |
3. 类似第一种的转化
1 | let arr = [1,5,3,4,5,1,1,0]; |
暂且归纳这么多,不足之处还请不吝赐教!
收藏文章

登录
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
取消上传
- 评分:
评论内容为空!
还没有评论,快来抢沙发吧!
热评话题
- 18年的年前的工作总结 | Joyde·zhong的博客
- JavaScript中的短路运算符 | Joyde·zhong的博客
- AngularJS通过$location获取及操作当前页面的URL | Joyde·zhong的博客
- AngularJs之指令与控制器之间的交互 | Joyde·zhong的博客
- vue数据data改变没有触发计算属性 | Joyde·zhong的博客
- Js文件下载操作 | Joyde·zhong的博客
- AngularJs项目之ngMock | Joyde·zhong的博客