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 源码分析笔记(7) Queue
Jun 19 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
js 获取范围内的随机数实例代码
Aug 02 Javascript
AngularJS指令详解及示例代码
Aug 16 Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
Mar 06 Javascript
Element Input输入框的使用方法
Jul 26 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php把数组值转换成键的方法
2015/07/13 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
修改发贴的编辑功能
2007/03/07 Javascript
更正确的asp冒泡排序
2007/05/24 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python3中的md5加密实例
2018/05/29 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
保安自我鉴定范文
2013/12/08 职场文书
地理教师岗位职责
2014/03/16 职场文书
高三英语复习计划
2015/01/19 职场文书
学校教代会开幕词
2016/03/04 职场文书
创业计划书之家教中心
2019/09/25 职场文书