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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
javascript自定义的addClass()方法
May 28 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
JavaScript登录记住密码操作(超简单代码)
Mar 22 Javascript
js使用html2canvas实现屏幕截取的示例代码
Aug 28 Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
解决vue一个页面中复用同一个echarts组件的问题
Jul 19 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生成静态文件的多种方法分享
2012/07/17 PHP
php浏览历史记录的方法
2015/03/10 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
JQuery包裹DOM节点的方法
2015/06/11 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
vue多次循环操作示例
2019/02/08 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
利用python编写一个图片主色转换的脚本
2017/12/07 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
django反向解析和正向解析的方式
2018/06/05 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
Django values()和value_list()的使用
2020/03/31 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
西岭雪山导游词
2015/02/06 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书