JavaScript判断数组元素重复的三种常用方法
作者:闭包旅人时间:2026-10-29 11:31:10浏览:352
本文汇总了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需再刷新一下页面才能执行]
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
