JavaScript判断数组元素重复的三种常用方法

作者:闭包旅人

时间:2026-10-29

浏览:351

本文汇总了JavaScript中判断数组元素是否重复的三种高效方法。第一种利用join与replace进行字符串替换检测;第二种通过sort排序后相邻元素对比;第三种采用哈希表对象记录已出现元素。文章提供了完整代码示例及性能分析,帮助开发者根据数据规模选择最优方案。

文章目录

JavaScript判断数组元素重复的三种常用方法

首先初始化一个空数组变量。


假设存在一组包含20个18位身份证号码的数组数据。


需要检测该数组中是否存在重复的身份证号码。


探讨如何实现快速且高效的重复判断逻辑。


方法一:字符串替换检测法

具体实现代码如下:

var ary = new Array("111","22","33","111");
var s = ary.join(",")+",";
for(var i=0;i<ary.length;i++)
    { 
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1)
 { 
alert("有重复!");
 } 
}
 

方法二:排序后相邻对比法

另一种实现方式的代码如下:

var ary = new Array("111","22","33","111");
var nary=ary.sort();
for(var i=0;i<nary.length-1;i++)
{if (nary[i]==nary[i+1])
{alert("重复内容:"+nary[i]);}
    }

方法三:正则表达式与哈希表优化法

利用正则表达式中的反向引用特性(\1,即第一个匹配结果)进行高级匹配。


首先使用join()方法将数组转换为字符串,并插入指定的分隔符\x0f(用户通常无法输入此类字符),此举旨在简化脚本逻辑并确保匹配的精确性。


该模式源自MzTreeView的开发经验,旨在跳过传统的for循环,从而实现极致的执行效率。


相关代码示例如下:

var hash = {};
for(var i in arr) {
if(hash[arr[i]])
return true;
hash[arr[i]] = true;
} 
return false;


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章