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. pom阿里加速镜像地址

    <repositories> <repository> <id>alimaven</id> <name>aliyun maven</n ...

  2. 使用 nuxi preview 命令预览 Nuxt 应用

    title: 使用 nuxi preview 命令预览 Nuxt 应用 date: 2024/9/8 updated: 2024/9/8 author: cmdragon excerpt: 摘要:本文 ...

  3. webpack笔记-生产环境与开发环境常用plugin介绍(五)

    mode 和 plugin 前边我们介绍 mode 时提过,mode 不同值会影响 webpack 构建配置,其中有一个就是会启用 DefinePlugin 来设置process.env.NODE_E ...

  4. 痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志

    -- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍.这一次痞子衡为大家带来了全新重要版本v6. ...

  5. docker基础镜像java版本选择和推荐

    背景 在编写dockerfile时,基础镜像要么太大,要么缺少jdk:dockerhub中的openjdk五花八门,不知道选择哪个 解决方案 我在项目中通常选择 openjdk作为基础镜像 FROM ...

  6. C#|.net core 基础 - 深拷贝的五大类N种实现方式

    在实际应用中经常会有这样的需求:获取一个与原对象数据相同但是独立于原对象的精准副本,简单来说就是克隆一份,拷贝一份,复制一份和原对象一样的对象,但是两者各种修改不能互相影响.这一行为也叫深克隆,深拷贝 ...

  7. 优化 Go 语言数据打包:性能基准测试与分析

    优化 Go 语言数据打包:性能基准测试与分析 场景:在局域网内,需要将多个机器网卡上抓到的数据包同步到一个机器上. 原有方案:tcpdump -w 写入文件,然后定时调用 rsync 进行同步. 改造 ...

  8. [CL-FOOL] CLOI 愚人赛的部分官方题解与小杂谈

    小细节 谁会拿 Rank 奖励? 头图里有写哦. 发现没有,这里的问号是蓝色的,点进去可以进到彩蛋界面. 当然彩蛋界面也什么都没有,提交界面藏在下面的源码里. 那么交什么呢. CLOI 的文件里有一团 ...

  9. [Tkey] 生日礼物

    题意简述 彩珠有 \(n\) 个 \(k\) 种,每个珠子都有一个坐标 \(p_{i}\),求最小的区间长度,使得这个区间包含全部的 \(k\) 种彩珠. 分析 发现我们可以维护每一种颜色的最近出现坐 ...

  10. C++中指针和数组相关的运算符优先级

    概述 本文深入介绍了与指针和数组相关的运算符优先级,利用代码示例展示了当左结合和右结合运算符同时存在时的结合方式,同时也演示了如何使用()来强制人为指定结合顺序. 指针.数组相关的运算符优先级 下表展 ...