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 相关文章推荐
js location.replace与location.reload的区别
Sep 08 Javascript
验证码按回车不变解决方法
Mar 29 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
JavaScript中的Object对象学习教程
May 20 Javascript
Jquery Easyui日历组件Calender使用详解(23)
Dec 18 Javascript
Angular 1.x个人使用的经验小结
Jul 19 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
Vue2.0 实现单选互斥的方法
Apr 13 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
手写实现JS中的new
Nov 07 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
图解上海144收音机
2021/03/02 无线电
php 中文处理函数集合
2008/08/27 PHP
PHP时间和日期函数详解
2015/05/08 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
php生成与读取excel文件
2016/10/14 PHP
新闻内页-JS分页
2006/06/07 Javascript
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
angularjs实现分页和搜索功能
2018/01/03 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年车间工作总结
2014/11/21 职场文书
北京故宫的导游词
2015/01/31 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
小程序实现侧滑删除功能
2022/06/25 Javascript