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

数组去重概念:去除数组中重复重新的值

方法一:循环遍历截取

原理:通过每次循环遍历比较当前值在不在数组中,在就删除当前值并且索引减一,弊端,会改变原数组

方法二:借助indexOf()方法

原理:判断此元素在该数组中首次出现的位置下标与循环的下标是否相等 与方法一类似

方法三:借助新数组和indexOf()方法

原理:通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中 原数组不变

方法四:借助空对象

原理:通过对象来记录新数组中已存储过的元素 不改变原数组 与方法三类似

方法五:filter方法

原理:查找当前元素索引出现的位置是否与当前元素索引值相等,是表示true返回 ,如果当前元素索引不等与当前索引,说明已经出现过,出现过就不返回。 原数组不变

方法六:使用include方法

原理:与indexOf类似,判断当前元素是否存在,不存在就添加 不改变原数组

方法七:es6 新增数据结构 new Set()方法

原理:new Set() 的成员具有唯一性,不能重复

本文来自千锋教育,转载请注明出处。

web前端数组处理之数组去重相关推荐

  1. [04]Web前端进阶—JS伪数组

    js伪数组 一.伪数组的特点 二.伪数组 常见的伪数组 伪数组转真 三.最后 一.伪数组的特点 具有lenght属性 可以使用下标访问数据 不具有数组的方法,比如push( ),pop( )等 二.伪 ...

  2. html获取数组的前三个元素,web前端:js 获取数组最后一个元素

    Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...

  3. web前端-JavaScript中的数组详解

  4. 好程序员web前端分享数组及排序、去重和随机点名

    好程序员web前端分享数组及排序.去重和随机点名,栈堆结构:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除. 栈:存放的是路径:容量有限(在一开始被定义之 ...

  5. web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)

    系列文章目录 内容 参考链接 Vue基本使用 Vue的基本使用(一文掌握Vue最基础的知识点) Vue通信和高级特性 Vue组件间的通信及高级特性(多种组件间的通信.自定义v-model.nextTi ...

  6. 初学者入门web前端 C#基础知识:数组与集合

    对于初学者,想要入门web前端,要有足够的信念和坚持,不然只会越走越远,我现在就深深的体会到. 我本是一个很拒绝代码的人,以前想过UI设计,但是在这段学习时间里,发现其实只要认真,代码并不是很难 所以 ...

  7. web前端数组处理之扁平化数组

    在进行前端开发的时候避免不了会遇到很多数组的情况,其中不乏会存在数组套数组或者需要合并数组的情况.今天小千就来给大家介绍一下如何将数组扁平化处理. 数组扁平化概念:用于将嵌套多层的数组"拉平 ...

  8. Web前端工作笔记001---封装前端数据字典_js 数组filter 总结_详解

    JAVA技术交流QQ群:170933152 我这里是我封装,前端数据字典的时候,用到的//数据字典 var dic = function () {var dics;$.ajax({async: fal ...

  9. Web前端JavaScript笔记(7)ECMA6新增数组方法

    新增数组方法: 1. Array.from():  将伪数组转化为真数组 <script>window.onload = function () {let tag_li = documen ...

最新文章

  1. C#中DateTime.Now.Ticks的用法和说明
  2. 定义__asm块作为C宏
  3. 整理出一个比较实用的SqlHelper类 满足大多数情况的使用
  4. Python学习笔记:Day 10 用户注册和登陆
  5. 戴尔optiplex3020主板接线_戴尔的售后都是这样的么
  6. 1 python基础
  7. Java中如何实现代理机制(JDK、CGLIB)
  8. matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!...
  9. C++基础教程之如何定义数字
  10. IDES SAP SEM 4.0/SAP BW 3.50 笔记本安装手册
  11. 卸载自己编译的程序(ubuntu14.04)
  12. CoinFLEX的基本情况以及与Bakkt
  13. 如何利用ICEPAK进行热仿真分析,简单易学
  14. springboot工作流程
  15. python绘制太阳花_Python绘制蟒蛇和太阳花
  16. IEEE latex 编写lemma
  17. 零基础学习C语言如何入门(内附工具书推荐+视频教程)
  18. elementUI 表格合并单元格-多层级-合并行
  19. 记录我的第一个Python项目
  20. 使用HttpClient模拟POST请求

热门文章

  1. 洛谷2015 二叉苹果树 树形DP
  2. MySQL学习第四章课后题
  3. centos mysql tar 安装mysql_centos 安装 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 详细步骤
  4. Invalid host: lb://xxx_xxx
  5. 有关使用junit依赖出现@Before或者@Before注解不生效
  6. 使用postman测试oauth2.0认证服务中出现OAuth出现Bad credentials
  7. Spring Boot——一种包含分页和排序参数的接收方法DEMO
  8. nacos+openfeign服务提供和服务消费远程调用代码简单实例2
  9. Spring-学习笔记08【面向切面编程AOP】
  10. 2021暑假实习-SSM超市积分管理系统-day03笔记