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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
js获取指定的cookie的具体实现
Feb 20 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
Bootstrap 网站实例之单页营销网站
Oct 20 Javascript
H5手机端多文件上传预览插件
Apr 21 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
js传递数组参数到后台controller的方法
Mar 29 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
Sep 10 Javascript
js计时事件实现圆形时钟
Mar 25 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
javascript每日必学之继承
2016/02/23 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
python爬取网页转换为PDF文件
2018/06/07 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python docx库用法示例分析
2019/02/16 Python
使用Python构造hive insert语句说明
2020/06/06 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
Final类有什么特点
2012/04/25 面试题
毕业生护理专业个人求职信范文
2014/01/04 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
家庭经济困难证明
2015/06/23 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
Go语言入门exec的基本使用
2022/05/20 Golang