JavaScript判断数组重复内容的两种方法(推荐)

 更新时间:2016年06月06日 17:11:00   作者:FungLeo  
本文给大家介绍两种JavaScript判断数组重复内容的方法(推荐)非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧

前言

一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 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判断数组重复内容的两种方法(推荐),希望能够帮助到大家!

相关文章

  • JavaScript实现简易轮播图最全代码解析(ES6面向对象)

    JavaScript实现简易轮播图最全代码解析(ES6面向对象)

    这篇文章主要为大家详细介绍了JavaScript实现简易轮播图最全代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • js取整数、取余数的方法

    js取整数、取余数的方法

    这篇文章主要介绍了js取整数、取余数的方法,需要的朋友可以参考下
    2014-05-05
  • JavaScript实现时间倒计时跳转(推荐)

    JavaScript实现时间倒计时跳转(推荐)

    这篇文章主要介绍了JavaScript实现时间倒计时跳转(推荐)的相关资料,涉及到settimeout和setinterval方法的介绍,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 微信小程序在{{ }}中直接使用函数的方法示例

    微信小程序在{{ }}中直接使用函数的方法示例

    最近在学习微信小程序,在学习中遇到了一些问题,所以进行了总结了下,这篇文章主要给大家介绍了关于微信小程序在{{ }}中直接使用函数的相关资料,需要的朋友可以参考下
    2021-06-06
  • webpack实现一个行内样式px转vw的loader示例

    webpack实现一个行内样式px转vw的loader示例

    这篇文章主要介绍了webpack实现一个行内样式px转vw的loader示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 详解cordova打包成webapp的方法

    详解cordova打包成webapp的方法

    本篇文章主要介绍了详解cordova打包成webapp的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 如何基于viewport vm适配移动端页面

    如何基于viewport vm适配移动端页面

    这篇文章主要介绍了如何基于viewport vm适配移动端页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 学习JavaScript设计模式之迭代器模式

    学习JavaScript设计模式之迭代器模式

    这篇文章主要为大家介绍了JavaScript设计模式中的迭代器模式,对JavaScript设计模式感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 前端图片加载错误的多种原因分析

    前端图片加载错误的多种原因分析

    在浏览网页或使用应用程序时,图片加载失败是一个常见的问题,下面这篇文章主要介绍了前端图片加载错误的多种原因分析的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • bootstrap table小案例

    bootstrap table小案例

    这篇文章主要介绍了bootstrap table小案例,教大家如何使用表格组件bootstrap table
    2016-10-10

最新评论