时间:2021-05-26
前言
一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 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,运行成功.
原理特别简单,就是,数组中的字段,在由数组变成的字符串中的首次出现位置和最后一次出现位置是否一致,如果不一致,就说明这个重复出现了.
方法二 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,运行又一次成功
总结
如果仅仅是比对第一个方法其实足够用了.
第二个方法可以查找出现的真实次数,比如重复了4次,就能找到4.具体的用途自己思考咯.
构建包含变量的正则的方法new RegExp(arr[i],"g")也是问别人才问出来的.
其实我先想到的是第二个思路,正则的问题困扰半天,终于解决了.才想到第一个思路的.
以上所述是小编给大家介绍的JavaScript判断数组重复内容的两种方法(推荐),希望能够帮助到大家!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JavaScript清空数组元素的两种方法简单比较。分享给大家供大家参考。具体分析如下:JavaScript中数组清空有多种方法:vararr=[
Javascript有两种方法来判断两种值是否相等。相等符号相等符号由两个等号组成:==Javascript是弱类型语言。这就意味着相等符号为了比较两个值将会强
本文实例讲述了Python实现删除排序数组中重复项的两种方法。分享给大家供大家参考,具体如下:对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字
有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到。用Javascript判断通常有两种方法。 1、用正则
有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到。用Javascript判断通常有两种方法。1、用正则表达式判