JavaScript判断数组重复内容的两种方法(推荐)


Posted in Javascript onJune 06, 2016

前言

一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false.

思路

把数组变成字符串

循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复

如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢?

方法一 indexOf() 和 lastIndexOf() 对比法.

首先,我们构建代码:

var arr = ["aa","bb","cc","bb","aa"];
arrRepeat(arr);

如上,我们要用一个arrRepeat(arr)的校验函数并执行,下面来构建这个函数

function arrRepeat(arr){
var arrStr = JSON.stringify(arr),str;
for (var i = 0; i < arr.length; i++) {
if (arrStr.indexOf(arr[i]) != arrStr.lastIndexOf(arr[i])){
return true;
}
};
return false;
}

OK,运行成功.

JavaScript判断数组重复内容的两种方法(推荐)

原理特别简单,就是,数组中的字段,在由数组变成的字符串中的首次出现位置和最后一次出现位置是否一致,如果不一致,就说明这个重复出现了.

方法二 match() 正则对比方法

首先,和上面一样,我们构建代码:

var arr = ["aa","bb","cc","bb","aa"];
arrRepeat(arr);

然后,我们重新构建arrRepeat(arr)函数

function arrRepeat(arr){
var arrStr = JSON.stringify(arr),str;
for (var i = 0; i < arr.length; i++) {
if ((arrStr.match(new RegExp(arr[i],"g")).length)>1){
return true;
}
};
return false;
}

原理是查找确定的重复次数,如果是大于1的话,就肯定是重复了.注意,这里是能够准确的查找出出现了几次的哦!所以,这个方法其实有更广泛的用途.

OK,运行又一次成功

JavaScript判断数组重复内容的两种方法(推荐)

总结

如果仅仅是比对第一个方法其实足够用了.

第二个方法可以查找出现的真实次数,比如重复了4次,就能找到4.具体的用途自己思考咯.

构建包含变量的正则的方法new RegExp(arr[i],"g")也是问别人才问出来的.

其实我先想到的是第二个思路,正则的问题困扰半天,终于解决了.才想到第一个思路的.

以上所述是小编给大家介绍的JavaScript判断数组重复内容的两种方法(推荐),希望能够帮助到大家!

Javascript 相关文章推荐
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Jul 21 Javascript
JS求平均值的小例子
Nov 29 Javascript
解析Javascript中难以理解的11个问题
Dec 09 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
Vue2.x中的父子组件相互通信的实现方法
May 02 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
webpack源码之loader机制详解
Apr 06 Javascript
在vue里使用codemirror遇到的问题
Nov 01 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
JavaScript数组的定义及数字操作技巧
Jun 06 #Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 #Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 #Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 #Javascript
深入理解JavaScript 函数
Jun 06 #Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 #Javascript
javascript url几种编码方式详解
Jun 06 #Javascript
You might like
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python encode和decode的妙用
2009/09/02 Python
Python callable()函数用法实例分析
2018/03/17 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
酒店实习个人鉴定
2013/12/07 职场文书
出国考察邀请函
2014/01/21 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
公司联欢会主持词
2015/07/04 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
win10清理dns缓存
2022/04/19 数码科技