前端:JS实现数组去重常用的六种方法介绍

今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助!

定义变量

let arr = [20,6,13,20,100,8,13,11];
let newArr = [];

 

1、两层循环去重

 

for(let i = 0;i < arr.length;i++){for(let j = i + 1;j < arr.length;j++){if(arr[i] == arr[j]){arr.splice(j,1)j--}}
}

 

2、includes函数判断去重

 

for(let i of arr){if(!newArr.includes(i)){newArr.push(i)}
}

 

3、filter循环过滤去重

 

arr.filter((val,index) => {if(newArr.indexOf(val) < 0){newArr.push(val)}
})

 

4、sort排序去重

 

arr = arr.sort() // [6,8,11,13,13,20,20,100]
for(let i = 0;i < arr.length;i++){if(i <= arr.length - 1 && arr[i] != arr[i + 1]){newArr.push(arr[i])}
}

 

5、ES6 Array.from()方法

 

console.log(Array.from(new Set(arr))) ;
console.log([...new Set(arr)]) ;

 

6、递归去重

 

let index = 0
arr = arr.sort()
function loop(index){if(index > 1){if(arr[index] == arr[index - 1]){arr.splice(index,1)}index--loop(index)}
}
loop(arr.length - 1)
console.log(arr);

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自定义colorbar_python可视化 matplotlib画图使用colorbar工具自定义颜色

python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot)自定义colorbar可以画出任何自己想要的colorbar&#xff0c;自由自在、不受约束&#xff0c;不依赖于任何已有的图(plot/mappable)。这里使用的是mpl.colorbar.ColorbarBase类…

路由器:什么是软路由,看完本篇文章你就懂了

今天小编给大家介绍一下软路由具体是什么&#xff0c;有什么实际用途&#xff0c;看完本篇你就懂了&#xff01; 一、软路由与硬路由概念介绍 硬路由&#xff1a;目前我们家里普遍使用的路由器&#xff0c;有厂家提供整体的解决方案&#xff0c;包括处理器、电源供应、嵌入式软…

Git服务器报错:host key for (ip地址) has changed and you have requested strict checking

一:报错提示 如下&#xff1a; WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key …

软件:常用 Linux 软件汇总,值得收藏

目录 1、音频软件 2、聊天软件 3、数据备份与恢复 4、桌面个性化工具 5、开发必备 6、 电子书工具 7、 编辑器软件 8、教育软件 9、电子邮件软件 10、文件管理器 11、娱乐游戏 12、 图形工具 13、互联网浏览 14、 办公效率工具 15、 生产力效率工具 16、 安全防护 17、文件共享…

SpringBoot集成Redis用法笔记

今天给大家整理一下SpringBoot集成Redis用法笔记&#xff0c;希望对大家能有所帮助&#xff01;一、Redis优点介绍1、速度快不需要等待磁盘的IO&#xff0c;在内存之间进行的数据存储和查询&#xff0c;速度非常快。当然&#xff0c;缓存的数据总量不能太大&#xff0c;因为受到…

tomcat和servlet的关系

tomcat和servlet的关系 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提…

Linux常用远程连接工具介绍,总有一款适合你

目录 1、xshell 2、winscp 3、PuTTY 4、MobaXterm 5、FinalShell 今天给大家推荐Linux常用远程连接工具&#xff0c;希望对大家能有所帮助&#xff01; 1、xshell 介绍&#xff1a; xshell是一个非常强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Windows平台的TEL…

Linux远程管理协议相关知识介绍

一、什么是远程管理远程管理&#xff0c;实际上就是计算机&#xff08;服务器&#xff09;之间通过网络进行数据传输&#xff08;信息交换&#xff09;的过程&#xff0c;与浏览器需要 HTTP 协议&#xff08;超文本传输协议&#xff09;浏览网页一样&#xff0c;远程管理同样需…

潜力的监控mysql_Grafana 数据库监控平台

Grafana 数据库监控平台简介Grafanademo 地址&#xff1a;官方demo文档可以下载pdf离线阅读Percona监控和管理(PMM)是一个用于管理和监控MySQL和MongoDB性能的开源平台。它由Percona与托管数据库服务&#xff0c;支持和咨询领域的专家合作开发。PMM是一种免费的开源解决方案&am…

PC软件:推荐七款Windows下宝藏软件

目录 一、uTools 效率神器 二、Groupy 窗口切换神器 三、Revo Uninstaller 卸载神器 四、Universal Viewer 五、VectorMagic 六、QuickLook 文件预览神器 七、Bandizip 压缩神器 今天给大家推荐七款Windows下软件&#xff0c;每一个都值得拥有。 一、uTools 效率神器 一个可以帮…

Linux计划任务(at,crontab)

在LINUX中&#xff0c;我们通过crontab和at这两个东西来实现 at&#xff1a;它是一个可以处理仅执行一次就结束的指令 crontab&#xff1a;它是会把你指定的工作或任务&#xff0c;比如&#xff1a;脚本等&#xff0c;按照你设定的周期一直循环执行下去 1.at计划任务的使用 语…

硬件:笔记本电脑7大分类总结,看完你就明白了

目录 游戏本 超极本 轻薄本 学生本 商务本 二合一电脑 上网本 今天给大家分享笔记本电脑7大场景分类&#xff0c;看完你就明白了&#xff01; 游戏本 游戏本最早由外星人和微星推出&#xff0c;在90年代就引起了众多游戏玩家的热捧。目前游戏本在笔记本电脑市场可谓是超级火爆&…

网路知识:为什么宽带越用越慢,看完你就明白了

目录 一、办理宽带的时候要问清楚宽带是不是独享的&#xff01; 二、定期重启路由器 三、定期检修宽带线路 四、出口光猫或路由器的问题 每个家庭都有安装宽带&#xff0c;但是仍然有不少人不知道宽带的基本常识&#xff0c;今天和大家一起来聊一聊。 首先宽带&#xff0c;是一…

设计模式---------门面模式

1.概念 提供一个统一的接口去访问多个子系统的多个不同的接口&#xff0c;它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。 本质&#xff1a;就是化零为整&#xff1b;引入一个中介类&#xff0c;把各个分散的功能组合成一个整体&#xff0c;只对外暴…

电脑技巧:推荐五款超级好用的电脑小众软件

目录 1、HoneyView 看图神器 2、PeaZip 压缩软件 3、Sandbox 沙盘工具 4、Seer 预览神器 5、flux 护眼神器 今天给大家推荐五款超级好用的电脑小众软件&#xff0c;希望对大家能够有所帮助&#xff01; 1、HoneyView 看图神器 HoneyView 看图软件&#xff0c;打开速度非常快&am…

java math round小数_Java——Math的round方法

代码如下&#xff0c;后面的注释是输出的结果public static voidmain(String[] args) {System.out.println(Math.round(0.399));//0System.out.println(Math.round(0.4));//0System.out.println(Math.round(0.41));//0System.out.println(Math.round(0.499));//0System.out.pri…

电脑软件:9款超级实用的办公软件

目录 一、Quicker 二、Eagle 三、FSCapture 四、图说 五、Lively Wallpaper 六、爱奇艺万能联播 七、Fliqlo 八、Folder Painter 九、7Zip 今天给大家分享9款超级实用的办公软件&#xff0c;值得收藏&#xff01; 一、Quicker 作为全网好评的这款国产软件&#xff0c;可以秒杀很…