JS学习笔记之数组去重实现方法小结
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:
操作的数组
1、
利用ES6 的set 来进行数组去重
1 2 3 4 5 6 | console.time( "set" ) let type1= new Set(arr) console.log(type1) type1=[...type1] console.log(type1) console.timeEnd( "set" ) |
2、
利用indexof和forEach 多次遍历来搜索是否有相同的值
1 2 3 4 5 6 7 8 9 | console.time( "indexOf" ) let type2=[] arr.forEach( function (item,index){ if (type2.indexOf(item)<0){ type2.push(item) } }) console.log(type2) console.timeEnd( "indexOf" ) |
3、
双循环实现数组去重
splice()
方法向/从数组中添加/删除项目,然后返回被删除的项目。
缺点 会对元素组造成影响,所以建议先拷贝数组
1 2 3 4 5 6 7 8 9 10 11 | console.time( "splice" ) let arr2=[0,1,23, '1' ,4,2,8,5,5,6,9, 'asdasd' , '5' ] for (let i=0;i<arr2.length;i++){ for (let j=i+1;j<arr2.length;j++){ if (arr2[i]===arr2[j]){ arr2.splice(i,1) } } } console.log(arr2) console.timeEnd( "splice" ) |
4、
利用 对象属性 不重复的特性 以及 typeof
来实现数组去重
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | console.time( "obj属性" ) let obj1={} let type4=[] arr.forEach( function (item,index){ let tf= typeof item if (!obj1[tf+ "_" +item]){ obj1[tf+ "_" +item]= true } }) console.log(obj1) for (item in obj1){ type4.push(item.split( "_" )[0].toLowerCase()== "number" ?+item.split( "_" )[1]:item.split( "_" )[1]) } obj1= null ; console.log(type4) console.timeEnd( "obj属性" ) |
5、
利用sort
排序 相同值就会被排列到一起
会对元素组产生操作
1 2 3 4 5 6 7 8 9 10 | console.time( "sort排序" ) let arr3=[0,1,23, '1' ,4,2,8,5,5,6,9, 'asdasd' , '5' ] arr3.sort() for (let i=0;i<arr3.length;i++){ if (arr3[i]===arr3[i+1]){ arr3.splice(i,1) } } console.log(arr3) console.timeEnd( "sort排序" ) |
效果展示
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
PS:这里再为大家提供几款相关工具供大家参考使用:
在线去除重复项工具:
http://tools.jb51.net/code/quchong
在线文本去重复工具:
http://tools.jb51.net/aideddesign/txt_quchong
更多关于JavaScript相关内容还可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
在IE中调用javascript打开Excel的代码(downmoon原作)
在IE中调用javascript打开Excel的代码(downmoon原作)...2007-04-04javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
在很多网站上能看到图片跟随鼠标移动的JS特效,其实做法很简单,本文就介绍了很多javascript鼠标跟随运动,在这里与大家分享下。2016-10-10for循环 + setTimeout 结合一些示例(前端面试题)
最近在学习node.js开发资料,正好碰到了for循环+settimeout的经典例子,下面小编给大家分享for循环 + setTimeout 结合一些示例代码,需要的朋友参考下吧2017-08-08javascript showModalDialog传值与FireFox的window.open 父子窗口传值示例
javascript showModalDialog传值与FireFox的window.open 父子窗口传值示例代码。2009-11-11
最新评论