位置: 编程技术 - 正文

javascript数组去重小结(javascript数组去重set方法)

发布时间:2024-02-27

推荐整理分享javascript数组去重小结(javascript数组去重set方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js数组去除指定元素,javascript数组去除重复元素,JavaScript数组去重,javascript数组去重set方法,javascript数组去重set方法,javascript数组去重set方法,javascript数组去重复,javascript数组去重复,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近为了换工作,准备下面试,开始回顾复习JavaScript相关的知识,昨天下午想到了数组去重的相关方法,干脆整理出几篇JavaScript算法文章,以备后用,此系列文章不定篇数,不定时间,想到哪写到哪,不保证正确性,不保证高效率,只是谈谈个人理解,如有错误,请诸位斧正。

关于去重

数组去重是一个比较常见的算法考察点,实现去重的方式无外乎通过唯一性和非唯一性。简单来讲就是挑出唯一的或者删除不唯一的。以下所有算法都是我自己瞎命名的,请无视之。

循环匹配去重

顾名思义,就是把数组中的每一个元素都和存放元素的数组对比,遇到不重复的元素,放入新数组中,直至循环结束,由于匹配也有循环,也可以称为双循环匹配去重,这也是大家都能想到的最简单的方式。

实现代码:

注意:上面方法有一个bug,当存在数字和数字形式的字符串的时候,没有区分出数字和数字字符串。因为在匹配函数isMatch()里用的是双等“==”,没有验证元素类型,实际应该使用全等“===”。修改后的代码如下:

算法优缺点:

优点:

实现简单,思路直观

缺点:

效率低下

JSON去重/对象去重/字典去重

JSON去重,简单来讲就是利用Object对象key的唯一性,将数组的元素转换为JSON或者说对象的key值。JSON的value存储数组的索引index,然后对JSON对象进行for in循环,存储到新数组中。

Array、JSON、{}都是Object,所以采用任意一种都可以实现此算法。

实现代码:

javascript数组去重小结(javascript数组去重set方法)

Array方式:

JSON方式:

Object方式:

算法优缺点:

优点:

简单

效率非常高

缺点:

1.改变了数组元素的类型() 2.有bug(无非区分数字和数字类型字符串)

队列递归去重

昨天晚上思忖良久想到用队列的方式,先将数组排序成升序或降序的队列,这样相同的元素就处在一个区域内,然后从队尾向前匹配,如果匹配成功,删除队尾,然后前一个元素再向其前面的匹配。整个匹配完成之后,剩下的元素就是去重过后的队列。

算法优缺点:

优点:

效率较高

缺点:

效率不是最高

INDEXOF去重方式

判断浏览器是否支持indexOf ,indexOf 为ecmaScript5新方法 IE8以下(包括IE8, IE8只支持部分ecma5)不支持

js日期插件dateHelp获取本月、三个月、今年的日期 最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一

论JavaScript模块化编程 JavaScript模块化编程的重要性JavaScript的原型是java,它也是一种面向对象编程语言,属于一种弱类型语言,它具有更大的灵活性。以往在编写javascript代码

基于JavaScript实现快速转换文本语言(繁体中文和简体中文) 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰繁体中文)。传统做法是在服务

标签: javascript数组去重set方法

本文链接地址:https://www.jiuchutong.com/biancheng/378965.html 转载请保留说明!

上一篇:详解JS正则replace的使用方法(js 正则replace)

下一篇:js日期插件dateHelp获取本月、三个月、今年的日期(js日期格式)

  • 出借包装物收取的押金
  • 贷款服务可以抵扣增值税吗
  • 一般纳税人核定征收申请条件
  • 联营企业股利收入
  • 成本法长期股权投资账务处理
  • 资本公积转为实收资本会计等式
  • 制造费用包括哪三类
  • 应付账款多计怎么处理
  • 供应商货款打折分录
  • 烟酒销售公司要交哪些税
  • 问答技巧例子
  • 研发支出资本化支出在报表哪里
  • excel自动计算增值税
  • 公司对公账户可以转私人账户多久到账
  • 开发项目未竣工前土地使用税怎么缴纳
  • 跨期费用审计调整分录
  • abs付款是现金吗
  • 分配水电费会计分录怎么写
  • 申请专利的顺序
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • php如何定义一个常量?常量名有哪些命名规则?
  • 阐述python中浅复制与深复制
  • rsa前端解密
  • 税款滞纳金和罚款
  • 外汇差额核销条件
  • thinkphp技巧
  • php 创建对象
  • 前端按钮跳转界面
  • 企业注销亏损怎么处理
  • 如何更好的使用银行承兑汇票
  • 取得经营所得的个人,有综合所得的是什么意思
  • 增值税发票的认证
  • db2之间的数据库迁移
  • 法院对行政机关罚款
  • 母公司给我们减工资
  • sql server rollup函数
  • 发票验旧后还要缴销吗
  • 小微企业的所得税税率是多少
  • 民宿的房屋租赁费怎么算
  • 增值税申报表是含税还是不含税
  • 公司购买不动产契税税率
  • 用友软件操作流程图片
  • 收回以前年度的应收账款较多能说明什么呢?
  • 母子公司间固定资产交换
  • 增值税一般纳税人认定标准
  • 收到预付卡结算款怎么入账
  • 公司的房租发票怎么记账
  • 企业发展基金返还条件
  • 劳务分包需要什么条件
  • 用友软件中冲销凭证在哪
  • 质量问题扣货款会计怎么处理
  • 少做收入第二年怎么算
  • 自然人系统如何恢复数据
  • 递延所得税资产账务处理
  • 企业的盈余公积包括哪些
  • mysql导入导出sql文件
  • xp系统cmd怎么打开
  • Win7系统如何关闭自动更新
  • mac虚拟机安装教程win10正版
  • centos iscsi 多路径
  • windows8使用教程
  • fedora 图形界面
  • 天气应用程序(weather)app免费下载
  • win10右下角的图标点不开
  • win10交接wifi
  • win7运行窗口在哪
  • win10系统出现问题怎么办
  • Unity3D游戏开发培训课程大纲
  • js动态改变div内容
  • 经典都有什么
  • css放大字体
  • golang 和 python
  • unity打包64位出错
  • vue父子组件之间的通讯
  • activity间数据传递
  • python 聚类算法包
  • java一些常用词汇
  • 江苏国税,地税怎么交
  • 四川医保增员网上怎么操作流程图
  • 注册会计师人员名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号