JS 清除字符串数组中,重复元素的实现方法


Posted in Javascript onMay 24, 2016

JS 清除字符串数组中,重复元素的实现方法

<script language="JavaScript">
<!--
var arrData=new Array();
for(var i=0; i<1000; i++)
{
arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random()*26)+97);
}
//document.write(arrData+"<br/>"); 

//方法一,普通遍历
function myArray_Unique(myArray)
{
//var myArray=new Array("a","a","c","a","c","d","e","f","f","g","h","g","h","k");
var haha=myArray;
for(var i=0;i<myArray.length;i++)
{
for(var j=0;j<myArray.length;j++)
{
temp=myArray[i];
if((i+j+1)<myArray.length&&temp==myArray[i+j+1]) //如果当前元素与后一个元素相等
haha.splice(i+j+1,1); //然后就移除下一个元素 
}
}
return haha;
} 

//方法二
function getUnique(someArray)
{
tempArray=someArray.slice(0);//复制数组到临时数组
for(var i=0;i<tempArray.length;i++)
{
for(var j=i+1;j<tempArray.length;)
{
if(tempArray[j]==tempArray[i])
//后面的元素若和待比较的相同,则删除并计数;
//删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j,1);
}
else
{
j++;
}
//不同,则指针移动
}
}
return tempArray;
} 

//方法三 正则表达式 -- 适用于字符型数组
function getUnique2(A)
{
var str = "\x0f"+ A.join("\x0f");
while(/(\w+)[^\1]*\1/.test(str))
str = str.replace("\x0f"+ RegExp.$1, "");
return str.substr(1).split("\x0f");
} 

//方法四 关联结构
Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for (var i=0,j=0; i<this.length; i++)
{
if (typeof o[this[i]] == 'undefined')
{
o[this[i]] = j++;
}
}
this.length = 0;
for (var key in o)
{
this[o[key]] = key;
}
return this;
} 

var d = new Date().getTime();
document.write(myArray_Unique(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 方法一算法计耗时 "+ d +" 毫秒!<br/><br/>"); //大约370ms~390ms左右 

var d = new Date().getTime();
document.write(getUnique(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 方法二算法计耗时 "+ d +" 毫秒!<br/><br/>"); //大约360ms~380ms左右 

var d = new Date().getTime();
document.write(getUnique2(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 正则表达式 方法三算法计耗时 "+ d +" 毫秒!<br/><br/>");//大约80ms左右 

var d = new Date().getTime();
document.write(arrData.unique());
d = new Date().getTime()-d;
document.write("<br/>2000元素 关联结构 方法四算法计耗时 "+ d +" 毫秒!<br /><br />");//大约0ms~10ms左右 

//-->
</script>

以上这篇JS 清除字符串数组中,重复元素的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery与iframe交互实现代码
Dec 24 Javascript
jQuery select操作控制方法小结
May 26 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
Javascript读写cookie的实例源码
Mar 16 Javascript
原生js的数组除重复简单实例
May 24 #Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 #Javascript
json传值以及ajax接收详解
May 24 #Javascript
JS获取屏幕高度的简单实现代码
May 24 #Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 #Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 #Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 #Javascript
You might like
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
php的header和asp中的redirect比较
2006/10/09 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
详解PHP中的PDO类
2015/07/06 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
简单的三步vuex入门
2018/05/20 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
Sanic框架应用部署方法详解
2018/07/18 Python
python实现简单成绩录入系统
2019/09/19 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
协议书怎么写
2014/04/21 职场文书
烟台的海导游词
2015/02/02 职场文书
单位提档介绍信
2015/10/22 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
MySQL基于索引的压力测试的实现
2021/11/07 MySQL