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 相关文章推荐
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
Jun 25 Javascript
jQuery实现的placeholder效果完整实例
Aug 02 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
Angular4 ElementRef的应用
Feb 26 Javascript
解决angularJS中input标签的ng-change事件无效问题
Sep 13 Javascript
详解vue中的computed的this指向问题
Dec 05 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递归复制、移动目录的自定义函数分享
2014/11/18 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python traceback捕获并打印异常的方法
2018/08/31 Python
利用nohup来开启python文件的方法
2019/01/14 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
社团文化节策划书
2014/02/01 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
中学生打架检讨书
2014/10/13 职场文书
2014年工程部工作总结
2014/11/25 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
机动车交通事故协议书
2015/01/29 职场文书
中班下学期个人总结
2015/02/12 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android