Javascript数组怎样去重
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍Javascript数组怎样去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数组去重1 双层for循环(类似冒泡排序的双层循环写法)var arr = [2,
千家信息网最后更新 2025年11月06日Javascript数组怎样去重
这篇文章主要介绍Javascript数组怎样去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
数组去重
1 双层for循环(类似冒泡排序的双层循环写法)
var arr = [2,3,4,2,34,21,1,12,3,4,1]for(var i =0;i2 循环和indexof、循环和includes
创建新数组,循环旧数组,看每次循环的元素是否存在于新数组中没有就把当前元素添加到新数组中
//indexofvar arr = [2,3,4,2,34,21,1,12,3,4,1]var arr2 = []arr.forEach((e)=>{ if(arr2.indexOf(e)==-1){ arr2.push(e) }})console.log(arr2)//arr2:[1, 2, 3, 4, 12, 21, 34]//includesvar arr = [2,3,4,2,34,21,1,12,3,4,1]var arr2 = []arr.forEach((e)=>{ if(!arr2.includes(e)){ arr2.push(e) }})console.log(arr2)//arr2:[1, 2, 3, 4, 12, 21, 34]3 利用对象属性不能重复去重
var arr = [2,3,4,2,34,21,1,12,3,4,1]var obj = {};arr.forEach((e,i)=>{ obj[arr[i]] = "abc"; });var arr2=Object.keys(obj)console.log(arr2)//arr2:["1", "2", "3", "4", "12", "21", "34"]var arr3 = arr2.map(e => ~~e )//arr3:[1, 2, 3, 4, 12, 21, 34]//注意这种方法不仅给数组重新排列而且还改变了数组中元素的类型~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是 ~~true === 1,~~false === 0。
4 ES6 Set
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
var arr = [2,3,4,2,34,21,1,12,3,4,1]var arr1 = [...new Set(arr)]console.log(arr1)//arr1:[1, 2, 3, 4, 12, 21, 34]5 ES6 Array. prototype.filter()
注:indexOf在数组中找元素的时候,碰到符合条件的第一个就会把它的下标返回
var arr = [2,3,4,2,34,21,1,12,3,4,1]var arr2 = arr.filter((e,i)=>{ //看每次循环的元素在数组中出现的第一个下标位置(indexOf返回的位置),和每次循环的元素的下标(filter循环每次的i)是否一致,一致就说明他就是第一个符合条件,不会被过滤掉。 return arr.indexOf(e)==i;})console.log(arr2)//arr2:[1, 2, 3, 4, 12, 21, 34]6 ES6 Array. prototype.reduce()
var arr = [2,3,4,2,34,21,1,12,3,4,1]var arr2 = arr.reduce((pre,e)=>{ //这里当然也可以用indexOf来判断是否存在 pre.includes(e)?pre:pre.push(e); return pre},[])console.log(arr2)//arr2:[1, 2, 3, 4, 12, 21, 34]以上是"Javascript数组怎样去重"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数组
元素
循环
下标
就是
一致
位置
内容
原值
双层
变量
条件
篇文章
相同
以此类推
三个
也就是
二层
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
pve加pvp我的世界服务器
网络安全保密性是
西城区省电软件开发规定
佛山服务器散热器
武汉联影医疗软件开发待遇
武汉大学网络安全考研目录
备份数据库数据linux
多肽功能数据库
深圳市畅想无限网络技术
公众号第三方开发需要多大服务器
法律数据库官方网站
最新的网络安全案例
媒体发布服务器
数字信息科技互联网之间的关系
主要的存储网络技术
网吧网络安全日志留存60天
国产数据库有哪几个
华宇软件开发框架A
网络安全活动助阵
网络安全知多少如何拒绝
太空网络安全态势感知
联系的属性数据库
北大网络安全学院
加强人防建设构筑网络安全
电脑数据库是不是内存
密码学与网络安全教育目录
服务器哪个好
手机短信数据库怎么开
软件开发用java还是c 好
数据库內容如何计算