数组中包含数组,Object,undefined,null,function等等一系列复合类型,请问javascript怎么实现去重?
以前我们总看三大去重方式汇总啊,五大去重方式汇总啊。有时候为了方便使用,还要保存好几篇文章。
这次,一篇就足够你用的了!
Methods 1:
思路:先定义一个“新数组”,并存放“源数组”(待去重的数组,以下简称源数组)的第一个元素,然后将源数组和新数组的元素一一对比,若不同则存放在新数组中。
Methods 2:
思路:先将源数组排序,在与相邻的进行比较,如果不同则存入新数组。
Methods 3:
思路:利用对象属性存在的特性,如果没有该属性则存入新数组。
Methods 4:
思路:利用数组的indexOf下标属性来查询。
Methods 5:
思路:利用数组原型对象上的includes方法。
Methods 6:
思路:利用数组原型对象上的 filter 和 includes方法。
Methods 7:
思路:利用数组原型对象上的 forEach 和 includes方法。
Methods 8:
思路:利用数组原型对象上的 splice 方法。
Methods 9:
思路:利用数组原型对象上的 lastIndexOf 方法。
Methods 10:
思路:利用 ES6的set 方法。
进阶篇:画龙点睛,一行代码搞定
Methods 10_1:
思路:利用ES6拓展运算符(...)内部使用for...of循环,以及Set成员值都是唯一的特性
Methods 10_2:
思路:利用数组原型对象上的 filter函数以及ES6的Map对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。