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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
jquery实现每个数字上都带进度条的幻灯片
Feb 20 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
node.js中的console.timeEnd方法使用说明
Dec 09 Javascript
js中hash和ico的关联分析
Feb 05 Javascript
谈谈JavaScript中function多重理解
Aug 28 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
详解node.js 下载图片的 2 种方式
Mar 02 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
Jul 01 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
微信小程序实现录音Record功能
May 09 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生成静态页面详解
2006/12/05 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
python实现下载整个ftp目录的方法
2017/01/17 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Python列表切片常用操作实例解析
2020/03/10 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
什么是属性访问器
2015/10/26 面试题
介绍长城的导游词
2015/01/30 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
怎么用Python识别手势数字
2021/06/07 Python
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
KVM基础命令详解
2022/04/30 Servers