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 相关文章推荐
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
基于JQuery的多标签实现代码
Sep 19 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
May 04 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
jquery代码规范让代码越来越好看
Feb 03 Javascript
巧用weui.topTips验证数据的实例
Apr 17 Javascript
微信小程序实现折叠展开效果
Jul 19 Javascript
Vue 打包体积优化方案小结
May 20 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
Mar 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实现保存submit内容之后禁止刷新
2014/03/19 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
vue2路由基本用法实例分析
2020/03/06 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
学习python的几条建议分享
2013/02/10 Python
Django自定义认证方式用法示例
2017/06/23 Python
python os用法总结
2018/06/08 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python程序变成软件的实操方法
2019/06/24 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
社区国庆节活动方案
2014/02/05 职场文书
驾驶员培训方案
2014/05/01 职场文书
世界读书日的活动方案
2014/08/20 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle