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 相关文章推荐
document.getElementById的简写方式(获取id对象的简略写法)
Sep 10 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
js打造数组转json函数
Jan 14 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
详解vue更改头像功能实现
Apr 28 Javascript
async/await让异步操作同步执行的方法详解
Nov 01 Javascript
vue prop属性传值与传引用示例
Nov 13 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 Javascript
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 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
那些年一起学习的PHP(三)
2012/03/22 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
Python中的自省(反射)详解
2015/06/02 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
简单了解python协程的相关知识
2019/08/31 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
二手房购房意向书范本
2014/04/01 职场文书
学校搬迁方案
2014/06/15 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
召开会议通知范文
2015/04/15 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python