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 实现AJAX加载XML并解析的脚本
Jul 25 Javascript
JavaScript 格式字符串的应用
Mar 29 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
May 07 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
Vue实战之vue登录验证的实现代码
Oct 31 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 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
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php学习之 循环结构实现代码
2011/06/09 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
php socket通信简单实现
2016/11/18 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
python实现的系统实用log类实例
2015/06/30 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
给公司的建议书范文
2014/05/13 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
评先进个人材料
2014/12/29 职场文书
反邪教观后感
2015/06/11 职场文书
行政处罚决定书
2015/06/24 职场文书
超市主管竞聘书
2015/09/15 职场文书
电工生产实习心得体会
2016/01/22 职场文书
初中英语教学反思范文
2016/02/15 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
教你怎么用python selenium实现自动化测试
2021/05/27 Python