Products
GG网络技术分享 2025-03-18 16:13 0
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。
在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能回被问到。
注:写的匆忙,加上这几天有点忙,还没有非常认真核对过,不过思路是没有问题,可能一些小细节出错而已。
数组去重的方法
一、利用ES6 Set去重(ES6中最常用)
二、利用for嵌套for,然后splice去重(ES5中最常用)
三、利用indexOf去重
四、利用sort()
五、利用对象的属性不能相同的特点进行去重(这种数组去重的方法有问题,不建议用,有待改进)
六、利用includes
七、利用hasOwnProperty
八、利用filter
九、利用递归去重
十、利用Map数据结构去重
十一、利用reduce+includes
十二、[…new Set(arr)]
PS:有些文章提到了foreach+indexOf数组去重的方法,个人觉得都是大同小异,所以没有写上去。
编辑:千锋HTML5
作者:沉静地闪光
链接:https://segmentfault.com/a/1190000016418021
三种js数组去重的三种简单方法是什么?WPMEE小编带大家一起学习。
1、es6Set去重
functionremoval(arr){
returnArray.from(newSet(arr))
}
letarr=[1,2,1,3,4,5,5]
removal(arr)//[1,2,3,4]
2、利用filter
functionremoval(arr){
returnarr.filter((item,index,arr)=>{
returnarr.indexOf(item,0)==index;
})
}
letarr=[1,2,1,3,4,5,5]
removal(arr)//[1,2,3,4]
3、利用reduce
letnewArr=arr.reduce((prev,cur)=>{
prev.indexOf(cur)===-1&&prev.push(cur);
returnprev;
},[]);
Demand feedback