当前位置:网站首页>数组去重的几种方法
数组去重的几种方法
2022-08-08 22:43:00 【MonsterQy】
一、双指针
基本思想:遍历数组,两层for循环比较元素是否相等,相等就删除重复元素。
代码如下
for(var i=0;i<arr.length;i++)
{
for(var j=i+1;j<arr.length;j++)
{
if(arr[i]==arr[j])
{
arr.splice(j,1)
}
}
}
console.log(arr)
二、filter方法
基本思想:filter方法是会对数组中每个元素去调用函数方法,true就保存下来,所以新声明一个数组去保存;而indexOf返回的总是元素在数组中第一次出现的位置,若它与当前元素相等则保存下来。
代码如下
var res=arr.filter((value,index)=>
{
return arr.indexOf(value)==index
})
三、includes
基本思想:利用includes方法去判断新声明的数组中是否已存在待操作的元素。
var arr=[1,1,1,2,3,4,5,5]
var res=[]
for(var i=0;i<arr.length;i++)
{
if(!res.includes(arr[i]))
{
res.push(arr[i])
}
}
console.log(res)
四、indexOf
基本思想:同上,不过是利用indexOf去判断
代码如下(示例):
var arr=[1,1,1,2,3,4,5,5]
var res=[]
for (var i=0;i<arr.length;i++)
{
if(res.indexOf(arr[i])==-1)
{
res.push(arr[i])
}
}
console.log(res)
五、reduce()
与includes()原理相同,不过是利用reduce方法遍历数组+返回结果,代码更简洁。
var arr=[1,1,1,2,3,4,5,5]
var res=arr.reduce((prev,cur)=>
{
if( !prev.includes(cur))
{
prev.push(cur)
}
return prev
},[])
console.log(res)
六、set
基本思想:直接利用ES6中set方法去重,不过这样去重后返回的是一个集合形,需要再转换。
var res=Array.from( new Set(arr))
边栏推荐
猜你喜欢
随机推荐
wps表格怎么调整表格大小?wps表格调整表格大小的方法
微信小程序“反编译”实战”解包 后面有彩蛋
新手如何买股票,买股票安全吗
Mysql8.0.21 Community Server远程连接报错
Alipay To Financial Ranking Name Modification
我曾七次鄙视自己的灵魂——纪伯伦
应用层协议——RADIUS
三国战绩 风云再起 网络版 物品序号 和 基址列表
MES对接Simba实现展讯平台 IMEI 写号与耦合测试
C drive space management
记录每天学习的新知识: Room
Unity Text自定义多重渐变色且渐变色位置可调
关于OD的bp send断点 常用断点(OD)
炒股开户去哪里办理,网上客户经理开户安全吗
你了解你每天都在用的NAT吗?
CTF攻防世界
C# 开发中遇到的一些小技巧
低佣金股票账户是怎么办理的?网上开户安全吗
巨头杀入的LMFP,是未来正极材料的新归宿?
GIL和池的概念