高性能js数组去重的方法有哪些
导读:本文共4049字符,通常情况下阅读需要13分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 数组去重的方法一、利用ES6 Set去重(ES6中最常用)functionunique(arr){returnArray.from(newSet(arr))}vararr=[1,1,'true','true',true,true,15,15,false,false,undefined,undefined,null,null,... ...
目录
(为您整理了一些要点),点击可以直达。数组去重的方法
一、利用ES6 Set去重(ES6中最常用)
不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法。
二、利用for嵌套for,然后splice去重(ES5中最常用)
双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值。
想快速学习更多常用的ES6语法,可以看我之前的文章《学习ES6笔记──工作中常用到的ES6语法》。
三、利用indexOf去重
新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push进数组。
四、利用sort()
利用sort()排序方法,然后根据排序后的结果进行遍历及相邻元素比对。
五、利用对象的属性不能相同的特点进行去重(这种数组去重的方法有问题,不建议用,有待改进)
六、利用includes
七、利用hasOwnProperty
利用hasOwnProperty 判断是否存在对象属性
八、利用filter
九、利用递归去重
十、利用Map数据结构去重
创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果。
十一、利用reduce+includes
十二、[...new Set(arr)]
[...new Set(arr)]
//代码就是这么少----(其实,严格来说并不算是一种,相对于第一种方法来说只是简化了代码)
高性能js数组去重的方法有哪些的详细内容,希望对您有所帮助,信息来源于网络。