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 相关文章推荐
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
JQuery实现鼠标滑过显示导航下拉列表
Sep 12 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
Nov 28 Javascript
用jquery实现的一个超级简单的下拉菜单
May 18 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
详述JavaScript实现继承的几种方式(推荐)
Mar 22 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 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设计模式 Command(命令模式)
2011/06/26 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Python正则表达式的使用范例详解
2014/08/08 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python编程实现的简单神经网络算法示例
2018/01/26 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
SQL Server面试题
2013/04/04 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
管理人员岗位职责
2015/02/14 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
Vue router配置与使用分析讲解
2022/12/24 Vue.js