JS学习笔记之数组去重实现方法小结


Posted in Javascript onMay 29, 2019

本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:

操作的数组

let arr=[0,1,23,'1',4,2,8,5,5,6,9,'asdasd','5']

1、
利用ES6 的set 来进行数组去重

JS学习笔记之数组去重实现方法小结

console.time("set")
  let type1=new Set(arr)
  console.log(type1)
  type1=[...type1]
  console.log(type1)
  console.timeEnd("set")

2、
  利用indexof和forEach 多次遍历来搜索是否有相同的值

JS学习笔记之数组去重实现方法小结

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() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

缺点  会对元素组造成影响,所以建议先拷贝数组

JS学习笔记之数组去重实现方法小结

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  来实现数组去重

JS学习笔记之数组去重实现方法小结

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排序 相同值就会被排列到一起

会对元素组产生操作
JS学习笔记之数组去重实现方法小结

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排序")

效果展示

JS学习笔记之数组去重实现方法小结

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

Javascript 相关文章推荐
jquery 图片上传按比例预览插件集合
May 28 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
Apr 11 Javascript
js限制文本框只能输入数字方法小结
Jun 16 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
jQuery隐藏和显示效果实现
Apr 06 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
Nov 08 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
详解Vue 如何监听Array的变化
Jun 06 Javascript
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
JS+CSS实现3D切割轮播图
Mar 21 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 13 Javascript
基于Vue实现电商SKU组合算法问题
May 29 #Javascript
JS学习笔记之闭包小案例分析
May 29 #Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 #Javascript
elementUI select组件value值注意事项详解
May 29 #Javascript
elementUI select组件使用及注意事项详解
May 29 #Javascript
通过vue手动封装on、emit、off的代码详解
May 29 #Javascript
el-select数据过多懒加载的解决(loadmore)
May 29 #Javascript
You might like
用Socket发送电子邮件
2006/10/09 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python pickle模块用法实例分析
2015/05/27 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
利用Python优雅的登录校园网
2020/10/21 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
最热门的自我评价
2013/12/30 职场文书
美容院考勤制度
2014/01/30 职场文书
师德标兵事迹材料
2014/12/19 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python