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 相关文章推荐
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
Chosen 基于jquery的选择框插件使用方法
May 30 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
Nov 08 Javascript
JavaScript中的依赖注入详解
Mar 18 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
js实现简单页面全屏
Sep 17 Javascript
详解Js模块化的作用原理和方案
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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
angular多语言配置详解
2019/05/16 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python实现分段线性插值
2018/12/17 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
小学防溺水制度
2014/01/29 职场文书
情人节寄语大全
2014/04/11 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
商务邀请函
2015/01/30 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
借款民事起诉状范文
2015/05/19 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
Python requests用法和django后台处理详解
2022/03/19 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android