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 异步调用框架 (Part 6 - 实例 &amp; 模式)
Aug 04 Javascript
Jquery 设置标题的自动翻转
Oct 03 Javascript
js querySelector和getElementById通过id获取元素的区别
Apr 20 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
用js判断是否为360浏览器的实现代码
Jan 15 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
Apr 29 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
微信小程序手动添加收货地址省市区联动
May 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 中include()与require()的对比
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
php模板之Phpbean的目录结构
2008/01/10 PHP
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
动态添加js事件实现代码
2009/03/12 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
超实用的javascript时间处理总结
2016/08/16 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
浅谈python迭代器
2017/11/08 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python十进制转二进制的详解
2020/02/07 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
毕业自我鉴定范文
2013/11/06 职场文书
校庆标语集锦
2014/06/25 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
人民调解协议书范本
2014/10/11 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
2016十一国庆节感言
2015/12/09 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
入党申请书怎么写?
2019/06/21 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python