当前位置:网站首页>数组去重的几种方法
数组去重的几种方法
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))
边栏推荐
猜你喜欢
随机推荐
MySQL 5.5(Windows)的安装教程
ArcPy要素批量转dwg
C language library function summary2019.10.31
雷电模拟器frida脱壳
DHCP的防御机制——DHCP Snooping(DHCP监听)
SVN Update和Commit执行文件
微信小程序项目--订单
我曾七次鄙视自己的灵魂——纪伯伦
Oracle 锁表,如何解锁
Unity Text三重渐变色
internship:一般的原有项目功能优化的具体步骤
Unity ScrollView无限循环左右滑动翻页带阻尼效果
Upload-labs Pass-02(MIME验证)
动态主机配置协议DHCP(DHCPv4)
Mysql数据库身份证统计sql数据库加密等操作
关于OD的bp send断点 常用断点(OD)
2022-08-08:给定一个数组arr,表示从早到晚,依次会出现的导弹的高度。 大炮打导弹的时候,如果一旦大炮定了某个高度去打,那么这个大炮每次打的高度都必须
Unity 双生ScrollView滑动冲突问题
ALIPAY WEB 登陆rsa加密 分析记录
Node中的Events模块怎么应用