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 相关文章推荐
javascript &amp;&amp;和||运算法的另类使用技巧
Nov 28 Javascript
向大师们学习Javascript(视频与PPT)
Dec 27 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
js 利用className得到对象的实现代码
Nov 15 Javascript
13个PHP函数超实用
Oct 21 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
jQuery 全选 全部选 反选 实现代码
Aug 17 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
Sep 26 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
Oct 18 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
超清晰的document对象详解
2007/02/27 Javascript
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
JavaScript实现省市区三级联动
2020/02/13 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
python实现大量图片重命名
2020/03/23 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
pandas中pd.groupby()的用法详解
2022/06/16 Python
JS高级程序设计之class继承重点详解
2022/07/07 Javascript