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 相关文章推荐
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
chrome调试javascript详解
Oct 21 Javascript
JavaScript驾驭网页-DOM
Mar 24 Javascript
js 判断数据类型的几种方法
Jan 13 Javascript
tab栏切换原理
Mar 22 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
使用NestJS开发Node.js应用的方法
Dec 03 Javascript
node.js如何操作MySQL数据库
Oct 29 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
JavaScript实现简单计时器
Jun 22 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 strtotime 函数UNIX时间戳
2009/01/14 PHP
php中计算时间差的几种方法
2009/12/31 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
php递归函数怎么用才有效
2018/02/24 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
AngularJS实现进度条功能示例
2017/07/05 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
用Python编写简单的微博爬虫
2016/03/04 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
Python基础之文件读取的讲解
2019/02/16 Python
Python中正则表达式的用法总结
2019/02/22 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python如何调用php文件中的函数详解
2020/12/29 Python
物业管理应届生求职信
2013/10/28 职场文书
工程资料员岗位职责
2014/03/10 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
党的生日活动方案
2014/08/15 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2016新年感言
2015/08/03 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js