网络编程
位置:首页>> 网络编程>> JavaScript>> JS学习笔记之数组去重实现方法小结

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

作者:倪晓磊  发布时间:2024-04-18 10:57:00 

标签:JS,数组去重

本文实例讲述了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学习笔记之数组去重实现方法小结

希望本文所述对大家JavaScript程序设计有所帮助。

来源:https://blog.csdn.net/m0_37846579/article/details/80237539

0
投稿

猜你喜欢

  • 1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。   他
  • 博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的API接口,返回值是以JSON格式,只需要返回是转成数组就能轻松实现各种实例了。下图
  • 导航标签彼此互斥、完全穷尽。导航标签其实就是一种文字表达形式,我们用标签来代表网站上的各种分类信息。比如“联系我们”这个标签,代表的内容通
  • 本文为大家分享了微信小程序实现留言板的具体实现方法,供大家参考,具体内容如下先说一下小程序的开发环境之类的基础东西1.到微信公众平台下载开发
  • 跨域资源共享CORS(Cross-origin Resource Sharing),是W3C的一个标准,允许浏览器向跨源的服务器发起XMLH
  • 高阶函数英文叫Higher-order function。什么是高阶函数?我们以实际代码为例子,一步一步深入概念。变量可以指向函数以Pyth
  • Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。Pandas的名称来自于面板数据(pan
  • 判断类型在Python中我们可以使用type进行类型的判断#我们想看一个对象的的类型可以这样class A:  passa = A
  • 前言在数据分析领域,最热门的莫过于Python和R语言,本文将详细给大家介绍关于Python利用pandas查询数据的相关内容,分享出来供大
  • 创建 NumPy ndarray 对象NumPy 用于处理数组,NumPy 中的数组对象称为 ndarray。我们可以使用 array()
  • 现在介绍加速网页图形显示速度的六种方法,为你解决这个难题。其最基本的宗旨就是,让你用买鱼的价钱,品尝到熊掌的美味和营养。 1.首先要确定图像
  • 前言在使用vue过程中,总会用到这样哪样的UI框架,在install这些框架时,往往还需要安装其要求的依赖,或是相关的编译环境,下面将记录描
  • mysql报如下错误,截取部分,message from server: "Host '****' is not
  • 在SQL Server数据库中如何查看一个登录名(login)的具体权限呢,如果使用SSMS的UI界面查看登录名的具体权限的话,用户数据库非
  • 这篇文章主要介绍了python scrapy重复执行实现代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
  • 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。模
  • 近期公司准备开发一个计费项目,数据库当然还是选用我最信赖的Oracle了。由于一部分基础数据在一台Win2000 Server的S
  • 目录前言1、背景2、模拟测试3、结论总结前言如果不是踩到坑,我估计到现在还不知道时间字段会四舍五入。1、背景通过 Java 代码获取当日最大
  • 本文实例为大家分享了Python/Django后端使用PIL Image生成头像缩略图的具体代码,供大家参考,具体内容如下import os
  • 背景我打开手机,发现有人在QQ空间里叫嚣。看他得意的样子,显然是在家里呆久了,已经忘了天有多高。预处理设计一个迷宫自动寻路算法并不难,但是对
手机版 网络编程 asp之家 www.aspxhome.com