• 时间复杂度:执行当前算法所消耗的时间
  • 空间复杂度:执行当前算法需要占用多少内存空间

使用双重循环(时间和空间复杂度比较高)

function deduplication(array) {    let arr = [...array];    for (let i = 0; i < arr.length; i++) {        for (let j = i + 1; j < arr.length; j++) {            if (arr[i] == a[j]) {                arr.splice(j, 1);                i--;                j--;            }        }    }    return arr;}console.log(deduplication(a));// [1,2,3,4,5]

利用对象的属性是唯一的

let arr = [1, 2, 3, 4, 5, 1, 2];function deduplication(arr) {    let obj = {},        p = [];    for (let i = 0; i < arr.length; i++) {        if (!obj[arr[i]]) {            obj[arr[i]] = true;            p.push(arr[i]);        }    }    return p;}console.log(deduplication(arr)); // [1,2,3,4,5]

ES6(最简洁)

let a = [1, 2, 3, 4, 5, 1, 2];let b = [...new Set(a)];console.log(b); // [1,2,3,4,5]console.log(Array.from(new Set(a))); // [1,2,3,4,5]

还有更多的方法,但举一反三,能够牢记三种就好,面试的时候想起三种也是不错的。

es6数组去重_JavaScript数组去重相关推荐

  1. 【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践

    es6数组中对象去重 方法一: filter()与findIndex()给数组去重 1. filter()用法 2. findIndex()用法 3. 去重实战 方法二:reduce()去重 1. r ...

  2. [记录]es6常用去重方法(数组、字符串)

    数组去重 ES6 ES6以下方法除了代码简洁外,对于undefined和NaN也同样可以达到去重的效果 new Set()是ES6新增的数据结构,类似于数组,但它的一大特性就是所有元素都是唯一的,没有 ...

  3. es6 数组去重_JS数组去重的9种方法(包括去重NaN和复杂数组类型)

    其实网上已经有很多js数组的去重方法,但是我看了很多篇并自己通过代码验证,发现都有一些缺陷,于是在研究多篇代码之后,自己总结了9种方法,如果有哪里不对请及时纠正我哈~ 测试代码 let arr1 = ...

  4. 数组去重与数组扁平化

    一.数组去重(1)indexOf() function only(arr){var res=[];arr.forEach(function(item){if(res.indexOf(item)==-1 ...

  5. web前端数组处理之数组去重

    在web前端开发过程中避免会遇到很多数组需要处理,经常出现的问题就是数组去重,今天小千就来给大家介绍一下几种常见的数组去重的方式,大家可以学习一下以备不时之需. 数组去重概念:去除数组中重复重新的值 ...

  6. js数组如何按照固定的下标去重_js数组去重方法总结

    假设我们有数组arr,并且声明新数组hash用来存放去重后的元素: var arr = [23,44,5,2,23,5,1,7,8,7]; //包含重复元素 var hash= []; //声明新数组 ...

  7. JS中数组的合并与去重

    一.数组(Array)的合并 1.forEach()遍历其中一个数组,将该数组的每一项push到另一个数组中 //遍历合并 let arr1 = [ 1, 2, 3, 4, 5]; let arr2 ...

  8. android两个数组对象去重合并,JS 数组,数组对象的合并去重方法

    此次对数组的操做,咱们使用es6的新语法来完成,因此在看下边代码以前,咱们要了解咱们下边要用到的es6中的set集合,和for...of 方法:javascript 首先介绍set集合: ES6提供了 ...

  9. android两个数组对象去重合并,js 两个数组(对象)去重合并

    项目前台代码中需要用到数组的去重操作,其实也不难,就算是对象数组,判断下对应的属性值也是可以实现的,但是如果我实现的话肯定是最常见的双重for循环,加个flag标记,老套的不能行了,想了想,还是上网找 ...

最新文章

  1. oracle 查询数据横向,Oracle 查询存储过程做横向报表的方法
  2. 自律到极致-人生才精致:第6期
  3. Unity Shaders
  4. 2.使用windows下的客户端连接虚拟机上的oracle连不上的时候的解决方案
  5. Android Studio删除无用的资源
  6. pymysql.err.InternalError: (1130, Host '127.0.0.1' is not allowed to connect to this MySQL server)
  7. python文本进度条94页_Python学习笔记 | 实例4:文本进度条
  8. 谈谈Virtual DOM
  9. 拓端tecdat|R语言具有Student-t分布改进的GARCH(1,1)模型的贝叶斯估计
  10. 高德地图:No implementation found for void com.autonavi.ae.gmap.GLMapEngine.nativeIni
  11. 工作中用到的sh脚本(持续更新)
  12. LeaRun.Java可视化流程简单配置过程
  13. python3d旋转相册,用HTML+CSS代码制作3D旋转相册
  14. 电脑桌面出现空白图标无法删除
  15. NFT吸血DeFi,冰火两重天
  16. 1526 B. I Hate 1111
  17. 扫福得福背后,支付宝AR红包的技术创新与故事
  18. 车载毫米波雷达测试方法
  19. CSS3——制作带动画效果的小图片
  20. 筹码底部共振(同花顺指标 副图 源码 测试图)

热门文章

  1. 比特币现金在与比特币的技术竞争中走在了前列
  2. 携程2019校招编程题(3)
  3. 【js】小数点后保留两位小数
  4. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
  5. 使用Silverlight Toolkit TreeView(树形控件)
  6. 飞塔安全实验室:2016年物联网将成为新的战场
  7. 灵玖Nlpir Parser语义智能系统精准汉语分词
  8. mongodb的监控与性能优化
  9. Visual Studio 2005 Web Application Projects 正式推出
  10. SIM PIN Lock