Javascript数组怎样去重
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍Javascript数组怎样去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数组去重1 双层for循环(类似冒泡排序的双层循环写法)var arr = [2,
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
axios 验证服务器
绿园区网络技术服务经验丰富
陕西手机软件开发制作
制定《网络安全审查办法》的目的
猫和老鼠服务器卡顿怎么办
手机版鬼泣如何选择服务器
erp数据库哪个好
医院软件开发的公司
青岛凯丹网络技术有限公司
北京网络技术有限公司地图
乌苏服务器设备维保公司
五一网络安全值班表
和燊互联网科技
网络安全竞赛特等奖
solr管理界面添加数据库
易语言数据库操作
uml数据库接口
网络安全 信息化工作
河北交友软件开发价位
数据库实验游标的设计和使用
网络安全有关的课程
穿越火线越南服务器神器
mysql多个数据库查询
孝感好的软件开发公司
校园网络安全体系硬
机器人网络安全
苹果邮箱发件服务器
我的世界科技类服务器
软件开发好的人
python建数据库表