1. indexOf()方法

const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8]
const newArr = []
arr.forEach(item => {
if(newArr.indexOf( item ) === -1){
newArr.push( item )
}
})

2. set类型 - ES6最常用,代码最少

const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8]
// 将 set 中的数据一个一个解构出来作为数组的数据单元
const newArr = [ ...new Set( arr ) ]

3. 双重for循环 - ES5最常用

const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8]
for( let i = 0 ; i <= arr.length-1 ; i++ ){
for( let j = i+1 ; j <= arr.length-1 ; j++ ){
if( arr[i] === arr[j] ){
arr.splice( j , 1)
j--
}
}
}

4. sort排序之后删除 - 消除数组坍塌

const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8]
arr.sort(function(a,b){return a-b})
for( let i = 0 ; i <= arr.length-2 ; i++ ){
if( arr[i] === arr[i+1] ){
arr.splice(i+1 , 1)
// 防止数组坍塌
i--
}
}

5. 利用对象没有重复的属性 - 不太建议

const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8]
const obj = {}
arr.forEach( item =>{
obj[item] = 1
})
const newArr = []
for( let key in obj ){
newArr.push(key)
}
console.log( newArr )

js中的数组去重的多种方法的更多相关文章

  1. js数组去重(多种方法)

    // js数组去重 Array.prototype.fun1 = function(){ var arr = this, result = [], i, len = arr.length; for(i ...

  2. JS009. 数组去重的多种方法总结与一步步优化

    两层for循环 这种函数的优点是兼容性好比较通用,缺点是时空复杂度都很直观的为O(n2),不利于维护和性能. var array = [1,1,'1','1'] function unique(arr ...

  3. 面试题常考&必考之--js中的数组去重和字符串去重

    1.引入:首先得知道数组没有可以直接去重的方法,即直接[].unique()是不支持的, 会报“Uncaught TypeError: [].unique is not a function”错误, ...

  4. JS 中检测数组的四种方法

    今天和大家分享一下 JS 中检测是不是数组的四种方法,虽然篇幅不长,不过方法应该算是比较全面了. 1. instanceof 方法 instanceof 用于检测一个对象是不是某个类的实例,数组也是一 ...

  5. js中Array数组的属性和方法

    这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...

  6. 【python常见面试题】之python 中对list去重的多种方法

    在python相关职位的面试过程中,会对列表list的去重进行考察.(注意有时会要求保证去重的顺序性) 1.直观方法 li=[1,2,3,4,5,1,2,3] new_li=[] for i in l ...

  7. JS中json数组多字段排序方法(解决兼容性问题)(转)

    前端对一个json数组进行排序,用户需要动态的根据自己的选择来对json数据进行排序. 由于后台表设计问题所以不能用sql进行排序,这里用到了js的sort方法. 如果对单字段排序,那么很简单,一个s ...

  8. 转:python中对list去重的多种方法

    对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ...

  9. python中对list去重的多种方法

    今天遇到一个问题,用了 itertools.groupby 这个函数.不过这个东西最终还是没用上. 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: ...

  10. js中的数组去重

    var str=["1","4","5","5","6","1","7 ...

随机推荐

  1. Linux离线安装Tomcat

    系统环境: centos7.3.1611 openjdk version "1.8.0_102" apache-tomcat-9.0.36.tar.gz tomcat 安装 #链接 ...

  2. Transformer模型:Position Embedding实现

    在自然语言处理(NLP)中,Transformer 模型是一个非常重要的里程碑,它通过自注意力(self-attention)机制极大地提高了处理序列数据的能力.在 Transformer 模型中,词 ...

  3. 【Python + yaml】之yaml文件数据驱动(包括DDT驱动)

    写自动化测试代码中,数据驱动传递参数比较方便一些,也便于后期维护,下面介绍两种数据驱动: 下面是test.yaml文件: start_HRApp: ip: 127.0.0.1 port: 4723 i ...

  4. 一个.NET开源、免费的跨平台物联网网关

    前言 今天大姚给大家分享一个基于.NET开源.免费的跨平台物联网网关:IoTGateway. 项目介绍 IoTGateway是一个基于.NET6的跨平台物联网网关.通过可视化配置,轻松的连接到你的任何 ...

  5. 浅触go中的单元测试

    对于一个写好的功能模块,我们还需要对其进行单元测试,确保该模块不会出现其他bug,或者输出不是期望结果 对于一个go程序,主要设计以下命令: 执行测试 go test -v / go test 执行某 ...

  6. 非常简易的SpringBoot后台项目

    非常简易的SpringBoot后台项目 1. 创建项目 使用IDEA创建 Spring项目,或在 https://start.spring.io/ . https://start.aliyun.com ...

  7. Centos7.9安装Docker和Docker compose

    什么是docker环境 Docker环境是指在计算机中安装和配置了Docker引擎的运行环境.Docker是一种容器化平台,它提供了一种轻量级的虚拟化技术,能够将应用程序及其依赖项打包成一个独立的容器 ...

  8. C# and TypeScript – Enum Flags

    前言 以前就有提过 Enum Flags,但平日不常用.最近翻 Angular 源码,发现它很多地方用到,而且没有封装语义代码.一堆符号真的看不惯啊... 于是又去复习了一遍,熟悉熟悉.顺便写一篇做记 ...

  9. Yarn 3.0 Plug'n'Play (PnP) 安装和迁移

    前言 以前用 npm, 后来 yarn 火了就用 yarn. 后来 yarn 2.0 大改版, Angular 不支持就一直没用. 一直到去年的 Angular 13 才开始支持. 最近又开始写 An ...

  10. 当git仓库里面已经有上传好的框架时,二次上传到仓库需要的指令

    初始化仓库 1 git init git add . "提交信息"里面换成自己的需要 如"first commit" git commit -m "提 ...